1. Pipeline概念
1. 为什么要用Pipeline?
redis客户端执行一条命令分为四个过程:
1) 发送命令
2) 命令排队
3) 命令执行
4) 返回结果
其中1+4称为RTT,往返时间。
因为redis的命令大多数都不能使用批量操作,所以执行多个命令就会产生多次RTT。如果有一种方式可以将命令一次打包执行,可以节省RTT时间,所以pipeline应运而生。
2. 模型图更加直观展示pipeline的好处
2. 性能测试对比图
3. 原生批量命令与Pipeline对比
1. 原生批量命令是原子的,要么成功要么失败
Pipeline是非原子的
2. 原生批量命令是一个命令对应多个key,Pipeline支持多个命令
3. 原生批量命令是Redis服务端支持实现的,而Pipeline需要服务端和客户端的共同实现。
4. 使用Pipeline注意事项
1. Pipeline组装的命令个数有限制
2. Pipeline只能操作一个Redis实例