这是 Java 技术驿站第 103 篇原创
-------------
在前面博客中小编提到过 Redis 性能瓶颈主要是网络,主要原因就在于 Redis 执行命令的时间通常在微妙级别。正常情况下,我们执行一条 Redis 命令流程要经过如下几个步骤:
客户端发送 Redis 命令,阻塞等待 Redis 应答
Redis 接收到命令,执行命令
应答,客户端收到响应信息
其中 1 、3 称之为一次 RTT(Round Trip Time)。在这种情况下,如果同时执行大量命令,那当前命令需要等待上一条命令应答完成后才会执行,这个过程不仅仅只有多次 RTT,还有频繁的调用系统 IO,发送网络请求,如下图:
把大量的时间消耗在来回路上,真正办事的时间就只有一点点,这种做法是非常不明智且低效的,为了解决这种低效的做法,pipeline 出现了,它允许客户端