redis——Pipelining(管道)

官方文档

redis正常的通信是 客户端请求一次,服务端响应一次,这个时间被称之为 RTT (Round Trip Time - 往返时间),当需要一次性往redis里面存大量的数据时,这种方式就很影响性能,管道就是不用等服务器给我回应,直接继续往服务器怼命令。

这种方式的优点,就是性能高,只有一次请求和一次响应,但是也有缺点。缺点是:服务端返回的命令需要服务端维护一个队列来存储,占用很多内存。

如果你需要发送大量的命令,最好是把他们按照合理数量分批次的处理,例如10K的命令,读回复,然后再发送另一个10k的命令,等等。这样速度几乎是相同的,但是在回复这10k命令队列需要非常大量的内存用来组织返回数据内容。

多个命令发送到服务器,而不用等待回复,最后在一个步骤中读取该答复。

官网上还有关于管道和脚本的区别,简单来说,假如后面的命令需要前边命令的返回值的情况下,只能用脚本,使用管道的命令只能是相互之间没有依赖关系的。

原文地址:https://www.cnblogs.com/know-more/p/13435200.html