Redis學習筆記 - pipline(流水線、管道)

一、什麼是 pipline

1. 一次網絡命令的通信模型

1次網絡命令時間 = 1次網絡傳輸時間(往返) + 1次命令執行時間

1次網絡命令時間 = 1次網絡傳輸時間(往返) + 1次命令執行時間

2. 批量網絡命令的通信模型

n次網絡命令時間 = n次網絡傳輸時間(往返) + n次命令執行時間

n次網絡命令時間 = n次網絡傳輸時間(往返) + n次命令執行時間

3. pipline可以打包n條命令,一次性傳輸到服務端,再按順序返回命令的執行結果

1次pipline(n條命令)網絡命令時間 = 1次網絡傳輸時間(往返) + n次命令執行時間

1次pipline(n條命令)網絡命令時間 = 1次網絡傳輸時間(往返) + n次命令執行時間

Redis命令執行的時間一般是微秒級,速度非常快。
因此,網絡傳輸通常會成爲redis性能的瓶頸。
此時,節省網絡傳輸時間是非常重要的。

pipline的作用

二、pipline與原生批量操作的對比

1. mget、mset等原生批量操作

mget、mset等批量操作是原子操作

原生批量操作

2. pipline

pipline是非原子操作

pipline

三、使用建議

  1. 注意每次pipline攜帶的數據量,數據量不宜過大
  2. pipline每次只能作用在一個Redis節點上
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章