Redis-cli常用參數及功能的詳細說明
相關參考知識書籍 <<Redis運維與開發>>
以下是Redis-cli常用參數及功能的詳細說明
1. **-r
?(重復執行命令)**
-
作用:重復執行指定命令多次。
-
示例:執行3次
PING
?命令:redis-cli -r 3 ping
輸出結果會連續返回3次
PONG
?。 -
應用場景:測試命令穩定性或批量操作(如壓力測試)。
2. **-i
?(間隔執行命令)**
-
作用:與
-r
?配合使用,設置每次命令執行的間隔時間(單位為秒)。 -
示例:每隔1秒執行一次
PING
?,共5次:redis-cli -r 5 -i 1 ping
支持毫秒級間隔(如
-i 0.1
?表示100毫秒)。 -
注意事項:避免高頻操作導致服務端負載過高。
3. **-x
?(從標準輸入讀取參數)**
-
作用:從標準輸入(如管道或文件)讀取數據作為命令的最后一個參數。
-
示例:通過管道設置鍵值:
echo "world" | redis-cli -x set hello
等同于執行
SET hello world
?。 -
應用場景:自動化腳本或批量導入數據。
4. **-c
?(集群模式)**
-
作用:連接Redis Cluster時自動處理
MOVED
?和ASK
?重定向異常。 -
示例:連接到集群節點:
redis-cli -c -h 192.168.1.100 -p 6379
在跨槽位操作時,客戶端會自動跳轉到正確節點。
-
重要性:避免手動處理集群分片邏輯。
5. **-a
?(密碼認證)**
-
作用:直接使用密碼認證,無需手動輸入
AUTH
?命令。 -
示例:連接帶密碼的Redis實例:
redis-cli -a yourpassword
需確保配置文件
redis.conf
?中設置了requirepass
?。 -
安全提示:避免在命令行明文暴露密碼,建議通過環境變量傳遞。
6. **--rdb
?(生成RDB備份)**
-
作用:請求Redis生成RDB持久化文件并保存到本地。
-
示例:導出當前實例的RDB文件:
redis-cli --rdb /path/to/dump.rdb
適用于定期備份或遷移數據。
-
注意事項:需確保服務端有足夠內存生成快照。
7. **--bigkeys
?(檢測大鍵)**
-
作用:掃描內存中占用較大的鍵(如字符串值超過5MB或集合元素超2000)。
-
示例:掃描并輸出大鍵統計:
redis-cli --bigkeys
輸出包括各數據類型最大鍵及其大小。
-
風險提示:大鍵可能導致內存溢出、刪除阻塞或集群傾斜。
8. **--eval
?(執行Lua腳本)**
-
作用:直接運行Lua腳本,支持原子性操作。
-
示例:執行腳本文件
script.lua
?:redis-cli --eval script.lua key1 key2 , arg1 arg2
腳本中可通過
KEYS
?和ARGV
?數組獲取參數。 -
優勢:減少網絡開銷,適合復雜邏輯(如分布式鎖)。
9. **--latency
?(網絡延遲檢測)**
-
作用:測試客戶端到Redis服務器的網絡延遲。
-
子選項:
- **
--latency
?**:實時輸出最小、最大、平均延遲。 - **
--latency-history
?**:分段統計延遲(默認每15秒)。 - **
--latency-dist
?**:以直方圖形式展示延遲分布。
- **
-
示例:持續檢測延遲:
redis-cli --latency -h 192.168.1.100
-
應用場景:診斷網絡抖動或服務端性能問題。
綜合應用示例
# 在集群模式下,每隔2秒檢測大鍵,共掃描5次
redis-cli -c -h cluster-node -i 2 -r 5 --bigkeys# 使用密碼連接,導出RDB文件并執行Lua腳本
redis-cli -a password --rdb backup.rdb --eval script.lua key1 , arg1
注意事項
- 性能影響:
--bigkeys
?和--rdb
?可能占用較多資源,建議在從節點執行。 - 腳本安全:Lua腳本需避免死循環或長時間阻塞操作。
- 集群兼容性:部分命令(如
KEYS *
?)在集群中不可用,需替換為SCAN
?。