redis multi pipeline
平时使用redis的时候,经常有批量操作的需求;
比如批量读取一批数据,或者批量写入一批数据;
最习惯用的就是multiGet和multiSet,但是最近超时较多;
后来改用了redis的pipeline,超时较少,服务器压力也变小了;
这里来对比下multi操作与pipeline之间的区别
0.首先要明确,redis是单线程工作的;
1.pipeline的原理是客户端缓冲所有命令,然后一次性发给服务端,目的是减少通信次数;
2.pipeline不具备原子性,可能部分成功,与其他客户端可以并发执行;
3.multi操作具备原子性;
4.实测pipeline效率比multi效率高10倍左右;
5.multi使用服务端缓冲,pipeline使用客户端缓冲;
6.multi是一条条发送的;
当然,很多客户端已经封装了multi,可以开启pipeline模式,你可以直接使用multi获得高效率;
比如我用的框架,multi直接用的pipeline实现;
网友评论