今天給xdm分享一個Redis自帶的壓測工具:redis-benchmark
。
redis-benchmark
是一個用於測試 Redis效能的基準測試工具,可以幫助開發人員評估和比較 Redis 在不同設定或負載情況下的吞吐量和延遲。
使用 redis-benchmark
可以執行多種型別的基準測試,例如:
- SET/GET 操作測試:通過執行 SET 和 GET 命令來測試 Redis 的讀寫效能。
- 並行連線測試:模擬多個並行連線同時執行 Redis 操作,測試 Redis 在高並行環境下的效能表現。
- 多執行緒測試:通過在多個執行緒中執行 Redis 操作來測試 Redis 在多執行緒環境下的效能表現。
- 資料大小測試:通過測試不同資料大小的操作來評估 Redis 在處理不同資料量時的效能表現。
redis-benchmark
提供了豐富的設定選項,可以控制並行連線數、資料大小、執行命令的型別等。測試結果包括每秒執行的命令數、平均延遲等指標,可以幫助開發人員優化 Redis 設定和應用程式設計,獲得更好的效能。
1、啟用100個並行,發100000個請求。
redis-benchmark -h 127.0.0.1 -p 6379 -c 100 -n 100000
-h 127.0.0.1
:指定 Redis 伺服器的主機地址為 127.0.0.1,即本地主機。-p 6379
:指定 Redis 伺服器的埠號為 6379,預設情況下 Redis 使用 6379 埠。-c 100
:指定並行連線數為 100,即同時並行地執行操作。-n 100000
:指定執行操作的總次數為 100,000 次。
如圖所示,1.27秒就完成了100000次請求,每秒78802的吞吐量,說明Redis本身的效能就非常好。
這是最常用的命令,可以評估 Redis 在指定條件下的並行處理能力和效能表現。
2、指定主機地址、埠號和資料庫編號測試Redis範例的效能
redis-benchmark -h 127.0.0.1 -p 6379 -q -d 100
-h 127.0.0.1
:指定 Redis 伺服器的主機地址為 127.0.0.1,即本地主機。-p 6379
:指定 Redis 伺服器的埠號為 6379,預設情況下 Redis 使用 6379 埠。-q
:指定以靜默模式執行基準測試,只輸出總結結果,不顯示每個操作的詳細資訊。-d 100
:指定要測試的資料庫編號為 100。預設情況下 Redis 使用 0 號資料庫。
如圖所示,每秒的qps是7萬多,效能很高。
3、執行100,000次測試 SET 和 LPUSH 命令的效能
redis-benchmark -t set,lpush -q -n 100000
4、執行100,000次測試Lua指令碼的效能
redis-benchmark -n 100000 -q script load "redis.call('set','foo','bar')"
-t set,lpush
:指定要執行的命令型別。在本例中,將同時執行SET
和LPUSH
命令,即將鍵值對設定到 Redis 中,並將元素推入列表。-q
:指定以靜默模式執行基準測試,只輸出總結結果,不顯示每個操作的詳細資訊。-n 100000
:指定執行操作的總次數為 100,000 次。
-n 100000
:指定執行操作的總次數為 100,000 次。在本例中,將執行 100,000 次script load
命令。-q
:指定以靜默模式執行基準測試,只輸出總結結果,不顯示每個操作的詳細資訊。script load "redis.call('set','foo','bar')"
:指定要執行的命令內容。在本例中,將執行script load
命令,並將 Lua 指令碼作為引數傳遞給該命令。指令碼內容是redis.call('set','foo','bar')
,表示在 Redis 中執行SET
命令來設定鍵名為foo
、值為bar
的鍵值對。
通過 redis-benchmark
的測試結果,你可以獲得qps、平均延遲、錯誤率等效能指標,從而根據需要進行調優和優化,確保Redis在實際生產環境中具有良好的效能和可靠性。
好了,今天的小知識你學會了嗎?
如果喜歡,請點贊+關注↓↓↓,持續分享乾貨哦!