csredis
csredis copied to clipboard
HSetAsync方法经常不成功的bug
作者你好: 我用的是nuget上3.1.6版,项目没有大的负荷,偶然有次发现用HsetAsync()方法写入数据没有成功,也没有异常。只是数据没有发生任何应有的变化。反复多次试验之后,发现偶尔也能执行成功。改成同步方法HSet之后,100%成功。我的项目环境是.netcore 2.2 不知道这是不是一个普遍的问题,吓得我赶快把所有的异步方法都改成了同步方法,包括ZAddAsync等尚未发现问题的方法。 代码如下:
var rhs= RedisHelper.HGet<List<RewardHis>>("REWARDHIS", openId);
rhs.Add(rh);
RedisHelper.HSetAsync("REWARDHIS", openId, rhs);
我很想知道这是不是一个已知的bug,是否在后续版本得到了解决。[email protected]
可能和网络环境有关,确实有同学说异步的这个问题。两个建议: 1、升级到最新 2、写入使用同步,读取用异步
因为异步用 SocketAsyncEventArgs 缓冲区问题,写入量过大会报错。
SocketAsyncEventArgs 资料太少,目前的协议那块还是使用原作者的代码,可能需要优化。
谢谢!!!
可能和网络环境有关,确实有同学说异步的这个问题。两个建议: 1、升级到最新 2、写入使用同步,读取用异步
因为异步用 SocketAsyncEventArgs 缓冲区问题,写入量过大会报错。
目前这个问题解决了吗?
可能和网络环境有关,确实有同学说异步的这个问题。两个建议: 1、升级到最新 2、写入使用同步,读取用异步 因为异步用 SocketAsyncEventArgs 缓冲区问题,写入量过大会报错。
目前这个问题解决了吗?
异步改造过,现在没出现这个问题了。