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實例