像SORT、LREM、SUNION等操作在大對象上會非常耗時,使用時要注意參照官方API上每個指令的算法複雜度。用前面介紹過的慢記錄檔監控操作的執行時間。就像主流資料庫提供的慢SQL日志一樣,Redis也提供了記錄慢操作的日志。注意這部分日志隻會計算純粹的操作耗時。
slowlog-log-slower-than設定慢操作的門檻值,slowlog-max-len設定儲存個數,因為慢記錄檔與延遲記錄一樣,都是儲存在記憶體中的:
127.0.0.1:6379> config set slowlog-log-slower-than 500
OK
127.0.0.1:6379> debug sleep 1
OK
(0.50s)
127.0.0.1:6379> debug sleep .6
127.0.0.1:6379> slowlog get 10
1) 1) (integer) 2
2) (integer) 1439369937
3) (integer) 473178
4) 1) "debug"
2) "sleep"
3) ".6"
2) 1) (integer) 1
2) (integer) 1439369821
3) (integer) 499357
3) "1"
3) 1) (integer) 0
2) (integer) 1439365058
3) (integer) 417846
複制代碼
輸出的四列的含義分别是:記錄的自增ID、指令執行時的時間戳、指令的執行耗時(ms)、指令的内容。注意上面的DEBUG指令并沒有包含休眠時間,而隻是指令的處理時間。
本文作者:geelou
本文來自雲栖社群合作夥伴rediscn,了解相關資訊可以關注redis.cn網站。