开发者社区 > 数据库 > 正文

C# StackExchange.Redis中HashSet线程安全问题

系统Centos7.2 64位, 语言C#, 运行环境 docker.io/microsoft/dotne 2.2.105,redis 4.0

程序逻辑:
程序启动时,用redis.HashSet(key, field, defaultValue, When.NotExists);当key不存在时设定初始值
程序运行过程中,值有改变时用 redis.HashIncrementAsync( key, field, change);修改Redis中的值

现在的问题是,第一个进程在调用 HashIncrementAsync刷新的时候,第二个进程启动用HashSet把已经存在的key刷新成了defaultValue初始值。整个项目逻辑中对这个key的写操作就只有HashSet和HashIncrementAsync。

想问一下,在对已有key的情况下用 HashIncrementAsync的过程中,会不会存在HashSet中的When.NotExists参数无效而直接被设置了新值的情况

展开
收起
过88客 2019-06-14 11:37:53 1776 0
0 条回答
写回答
取消 提交回答

数据库领域前沿技术分享与交流

相关产品

  • 云数据库 Tair(兼容 Redis)
  • 相关电子书

    更多
    Redis在唯品会的应用实践——架构演进与功能定制 立即下载
    微博的Redis定制之路 立即下载
    云数据库Redis版的开源之路 立即下载