系统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参数无效而直接被设置了新值的情况