上一节我们 redis 执行命令的生命周期大概为:
- 发送命令 (客户端发送)
- 排队 (服务端排队)
- 执行命令 (服务端执行)
- 返回结果 (服务端返回)
我们知道服务端每秒可执行上万条命令,执行一条命命令是微妙级别的,客户端发送一条命令,需要在网络中进行传输,网络是不稳定的,这个传输时间是很长的,可见网络传输对redis 的性能是有一定影响的。
n 条命令所花费的时间为: n 次网络传输时间 + n次服务器处理时间
pipeline(流水线):客户端批量发送命令,此时处理n 条命令所花费的时间为1次网络传输时间+ n次服务器处理时间
- 注意每次pipeline 携带数量
- pipeline 每次只能作用在一个redis 节点上
M 操作与 pipeline 的区别
原生的 M操作具有原子性(MSET 、HMSET 命令等)
pipeline 操作 是非原子性的,但能保证执行顺序。