redis 運行生命週期
- 發送命令
- 排隊 (單線程,所以要排隊)
- 執行命令 (不同的命令,執行時間不同。有的執行時間長,影響整體性能)
- 返回結果
慢查詢
-
慢查詢發生在
執行命令階段(第三階段)
,當發現某redis命令執行時間過長,就會記錄該命令到慢查詢日誌當中。 -
使用者可以更好地監視和找出在業務中一些慢redis操作,找到更好的優化方法。
慢查詢設置
最大超時時間,慢查詢的閾值(單位:微妙)
CONFIG SET slowlog-log-slower-than num
設置超過多少微秒的查詢爲慢查詢,並且將這些慢查詢加入到日誌文件中,num的單位爲毫秒,windows下redis的默認慢查詢時10000微妙即10毫秒。通常設置爲1ms。
如果需要記錄所有的命令,我們可以設置 閾值爲0 ,slowlog-log-slower-than=0
,不想記錄所有的命令,則設置slowlog-log-slower-than < 0
閾值小於0 即可。
慢查詢最大日誌數
CONFIG SET slowlog-max-len num
設置日誌的最大數量,num無單位值,windows下redis默認慢查詢日誌的記錄數量爲128條。通常設置爲1000 左右。該配置 是一個先進先出的隊列,且有固定的長度,保存在內存當中。
慢查詢常用命令
- showlog get [n]:獲取慢查詢隊列
- showlog len : 獲取慢查詢隊列長度
- showlog reset :清空慢查詢隊列