redis pipeline 独占链接

pipeline期间将“独占”链接,此期间将不能进行非“管道”类型的其他操作,直到pipeline关闭;如果你的pipeline的指令集很庞大,为了不干扰链接中的其他操作,你可以为pipeline操作新建Client链接,让pipeline和其他正常操作分离在2个client中。不过pipeline事实上所能容忍的操作个数,和socket-output缓冲区大小/返回结果的数据尺寸都有很大的关系;同时也意味着每个redis-server同时所能支撑的pipeline链接的个数,也是有限的,这将受限于server的物理内存或网络接口的缓冲能力。

如果在多线程环境下使用redispool获取链接,每个线程持有的redis链接不同,即使使用pipeline操作相同的key,也会存在并发的问题,要考虑场景是否适用。总之,pipeline是用于解决吞吐量和顺序执行问题,本身不具备事务性。

猜你喜欢

转载自www.cnblogs.com/peterkang202/p/10450198.html