Redis慢查詢和slowlog

Redis命令執行步驟

  1. 發送命令
  2. 命令排隊
  3. 命令執行
  4. 返回結果

慢查詢只統計步驟3命令執行的時間,所以沒有慢查詢並不代表客戶端沒有超時問題。

配置項

  • slowlog-log-slower-than代表一條命令執行超過多少微秒就會記錄爲慢查詢,默認爲10000
  • slowlog-max-len代表慢查詢日誌最多存儲多少條,默認爲128,超出後,先記錄的會被頂掉

相關命令

  • slowlog get [n]:獲取當前記錄的慢查詢,參數n可以指定條數,每條返回值包括4部分,日誌唯一id、執行時間戳、執行時間(單位微秒)、命令和參數
  • slowlog len:獲取慢查詢日誌的條數
  • slowlog reset:慢查詢日誌重置

配置建議

  • slowlog-max-len建議線上配置1000以上,降低慢查詢被剔除的可能
  • slowlog-log-slower-than在高併發場景建議設置爲1毫秒,也就是1000
  • 當客戶端出現請求超時,需要檢查該時間點是否有定影的慢查詢,從而分析出是否爲慢查詢導致的命令級聯阻塞
  • 可以定期執行slow get命令將慢查詢日誌持久化到MySQL中(開源工具:https://github.com/sohutv/cachecloud

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章