一、什麼是 pipline
1. 一次網絡命令的通信模型
1次網絡命令時間 = 1次網絡傳輸時間(往返) + 1次命令執行時間
2. 批量網絡命令的通信模型
n次網絡命令時間 = n次網絡傳輸時間(往返) + n次命令執行時間
3. pipline可以打包n條命令,一次性傳輸到服務端,再按順序返回命令的執行結果
1次pipline(n條命令)網絡命令時間 = 1次網絡傳輸時間(往返) + n次命令執行時間
Redis命令執行的時間一般是微秒級,速度非常快。
因此,網絡傳輸通常會成爲redis性能的瓶頸。
此時,節省網絡傳輸時間是非常重要的。
二、pipline與原生批量操作的對比
1. mget、mset等原生批量操作
mget、mset等批量操作是原子操作
2. pipline
pipline是非原子操作
三、使用建議
- 注意每次pipline攜帶的數據量,數據量不宜過大
- pipline每次只能作用在一個Redis節點上