一尘不染

Redis中有多个命令时,是否应该始终使用流水线操作?

redis

我是redis的新手,应该使用流水线操作时还是有些困惑,或者应该在发送多个命令时始终使用它?

例如,如果我想一次向Redis服务器发送10条SET命令,我是否应该简单地一个接一个地运行这10条命令,还是应该对它们进行流水线处理?

用管道传输10条SET命令而不是一一发送它们有什么缺点吗?

非常感谢。


阅读 242

收藏
2020-06-20

共1个答案

一尘不染

当我应该使用流水线

当需要向Redis发送许多命令时,管道用于减少RTT,从而可以提高性能。

当要发送的命令多于1个时,我应该一直使用它吗?

这取决于。您应该逐案讨论。

如果我想一次向Redis服务器发送10条SET命令,我是否应该简单地一个接一个地运行这10条命令,或者应该对它们进行管道传输?

用管线将这些命令比发送10个命令快得多。但是,在这种情况下,最好的选择是使用MSET命令。

用管道传输10条SET命令而不是一一发送它们有什么缺点吗?

使用管道,Redis需要消耗更多的内存来保存所有这些管道命令的结果,直到获取这些结果为止。因此,如果您传递太多命令,则可能是一个问题。

2020-06-20