pipeline解决Redis频繁命令往返导致的性能瓶颈

客户端和服务端交互模型

1673366993739-5cd5eaf9-ff8c-4fa8-ad5c-198d333f8d79.png

Redis 的 pipeline 交互模型

1673367012349-e1c26fa5-0170-4217-a784-758f9d46801f.png

1673367262109-2812aa92-9008-42fd-aeff-0b071a1f4bfc.png

1673367312511-aacc295b-cb4b-43c1-88ed-9379b575c807.png

1673367381044-263fa5f8-76b6-4785-90cc-973a4719f3b6.png

1673367426665-0650e411-cf78-452b-9504-e4117ff6107d.png

Redis pipeline 与原生批量mset等等命令对比

  • 原生批量命令是原子性,pipeline 是非原子性的
  • 原生批量命令一次只能执行一种命令,pipeline 支持批量执行不同命令
  • 原生批命令是服务端实现,而 pipeline 需要服务端与客户端共同完成

需要注意:

  • Redlis 事务是具有隔离性的,在执行过程中不会穿插执行其他客户瑞发送的命令
  • 使用 pipeline 组装的命令个数不能太多,不然数据量过大
  • pipeline 会按照指令缓冲的顺序执行,但是可能会穿插其他客户端发送来的命令,即时序性不一定能够保证
  • pipeline 执行中间某一个指令出现异常,将会继续执行后续的指令,即不能保证原子性

posted on 2025-10-14 23:53  chuchengzhi  阅读(7)  评论(0)    收藏  举报

导航

杭州技术博主,专注分享云计算领域实战经验、技术教程与行业洞察, 打造聚焦云计算技术的垂直博客,助力开发者快速掌握云服务核心能力。

褚成志 云计算 技术博客