Redis slowlog慢查詢


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。日志一旦被刪除,將無法恢復。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM