redis学习十八:redis管道

如何优化频繁命令往返造成的性能瓶颈:管道可以一次性发送多条命令给服务端,服务端依次处理完毕后,

通过一条响应一次性将结果返回,通过减少客户端与redis的通信次数来实现降低往返延时时间,管道实现

的原理是队列,先进先出的特性就保证数据的顺序性。

管道定义:pipeline是为了解决rtt往返回时,仅仅是将命令打包一次性发送,对整个redis的执行不造成任何其他影响

批处理命令的变种优化措施,类似redis的原生批命令

实操:

 写一个txt记录命令,使用此命令,最后进入redis查看,能够获取对应key的vaule

 总结:

管道与原生批命令对比:

原生批量命令是原子性(如mset,mget),pipeline是非原子性

原生批量命令一次只能执行一种命令,pipeline支持批量执行不同命令

原生批命令是服务端实现,而pipeline需要服务端与客户端共同完成

注意事项:

pipeline缓冲的指令只是会依次执行,不保证原子性,如果执行中指令发生异常,将会继续执行后续的指令

使用pipeline组装的命令个数不能太多,不然数据量过大客户端阻塞的时间可能过久,同时服务端此时也被迫恢复一个队列答复,占用很多内存

 

posted @   浮笙芸芸  阅读(31)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示