Service-stack.redis操作Redis 并发相关问题
电脑版发表于:2018/12/12 17:33
1: 不要循环去创建对象 ,循环去访问redis的时候要特别注意,应该传一个集合进去处理,而不是循环去处理
2: 要注意释放对象,使用using释放对象,如果只创建不释放就会卡死(有些库不是卡死但是在多线程下读取的数量不对,有些连接的数据会丢失)
当然如果觉得每次手动使用using释放麻烦,也担心自己忘记去using释放的话。
可以使用GetCacheClient方法。里边封装了每次操作都使用using去释放对象
看源码就能知道
但是他里边封装的方法不多,只有基本的键值对set支持。所有hash,list这些要么自己封装一个,要么还是
每次使用的时候都去using一下
而且还有一个不好的地方就是每次操作里边都重新去获取了一次对象,如果一不小心就或去出现循环
去创建对象的问题
不用太担心释放了并发大还会出现卡死的情况
只要释放就不用怕,卡死是因为一直在等待释放,没有释放所以会一直等待然后出现卡死。如果有释放,即使并发量超过了连接池,会等待,但是也有会释放的时候,不会卡死