redis 简单整理——pipeline[十]
Posted 程序员其实就是一个写文档的工作,代码只是文档的一部分,一切皆
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis 简单整理——pipeline[十]相关的知识,希望对你有一定的参考价值。
前言
简单整理一下pipeline。
正文
1)发送命令
2)命令排队
3)命令执行
4)返回结果
其中1)+4)称为Round Trip Time(RTT,往返时间)。
pipeline它能将一组Redis命令进 行组装,通过一次RTT传输给Redis,再将这组Redis命令的执行结果按顺序返回给客户端
举个例子:
echo -en \'*3\\r\\n$3\\r\\nSET\\r\\n$5\\r\\nhello\\r\\n$5\\r\\nworld\\r\\n*2\\r\\n$4\\r\\nincr\\r\\ n$7\\r\\ncounter\\r\\n\' | redis-cli --pipe
执行模型如下:
与原生命令的差异:
·原生批量命令是原子的,Pipeline是非原子的。
·原生批量命令是一个命令对应多个key,Pipeline支持多个命令。
·原生批量命令是Redis服务端支持实现的,而Pipeline需要服务端和客户 端的共同实现。
实践注意的地方:
Pipeline虽然好用,但是每次Pipeline组装的命令个数不能没有节制,否 则一次组装Pipeline数据量过大,
一方面会增加客户端的等待时间,另一方 面会造成一定的网络阻塞,可以将一次包含大量命令的Pipeline拆分成多次 较小的Pipeline来完成。 Pipeline只能操作一个Redis实例,但是即使在分布式Redis场景中,也可 以作为批量操作的重要优化手段
结
下一节Lua脚本
以上是关于redis 简单整理——pipeline[十]的主要内容,如果未能解决你的问题,请参考以下文章