Redis slowlog慢查詢
阿新 • • 發佈:2018-03-09
ring unix comm ive word 格式 server ping reids
slowlog (閱讀原文)
此命令用於讀取和重置redis慢請求日誌
redis slow log概述
redis的slow log記錄了那些執行時間超過規定時長的請求。執行時間不包括I/O操作(比如與客戶端進行網絡通信等),只是命令的實際執行時間(期間線程會被阻塞,無法服務於其它請求)。
有兩個參數用於配置slow log:
slowlog-log-slower-than:設定執行時間,單位是毫秒,執行時長超過該時間的命令將會被記入log。-1表示不記錄slow log; 0強制記錄所有命令。
slowlog-max-len:slow log的長度。最小值為0。如果日誌隊列已超出最大長度,則最早的記錄會被從隊列中清除。
可以通過編輯redis.conf文件配置以上兩個參數。對運行中的redis, 可以通過config get, config set命令動態改變上述兩個參數
讀取slow log
slow log是記錄在內存中的,所以即使你記錄所有的命令(將slowlog-log-slower-than設為0),對性能的影響也很小。
slowlog get: 列出所有slow log
slowlog get N:列出最近N條slow log
輸出格式
redis 127.0.0.1:6379> slowlog get 2
1) 1) (integer) 14
2) (integer) 1309448221
3) (integer) 15
4) 1) "ping"
2) 1) (integer) 13
2) (integer) 1309448128
3) (integer) 30
4) 1) "slowlog"
2) "get"
3) "100"
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
每個條目由4個字段構成:
1)用於表示該條slow log的唯一id
2)以unix時間戳表示的日誌記錄時間
3)命令執行時間,單位:微秒
4) 執行的具體命令
只有當reids重啟後,id編號才會被重置。
獲取當前slowlog長度
slowlog len
重置slowlog
可以使用slowlog reset重置slow log。日誌一旦被刪除,將無法恢復。
Redis slowlog慢查詢