慢查詢日誌就是系統在命令執行前後計算每條命令的執行時間。當超過預設的閥值就把它記錄下來。
redis執行命令分為:
傳送命令
命令佇列
命令執行
返回結果
慢查詢只統計步驟3的時間,所以沒有慢查詢不代表客戶端沒有超時問題。
slowlog-log-slower-than:預設閥值,它的單位是微秒(1秒=1000毫秒,1毫秒=1000微秒),預設值是10000,假如執行了乙個「很慢」的命令,如 「keys * 」;如果它超過了10000微秒,那麼它將會被記錄在慢查詢日誌裡。
注:如果 slowlog-log-slower-than=0 會記錄所有的命令
如果 slowlog-log-slower-than<0對於任何命令都不會進行記錄。
slowlog-max-len:慢查詢日誌最多儲存的條數。redis使用乙個列表來儲存慢查詢日誌,slowlog-max-len就是列表的最大長度,當列表已經處於最大長度時,繼續新增乙個慢查詢日誌時,會將最早插入的乙個命令從列表中移除。
修改配置檔案
使用config set 命令動態修改
config set slowlog-log-slower-than 20000
config set slowlog-max-len 1000
config rewrite //如果需要將上面兩個命令持久化本地配置檔案中,需要執行此命令:config rewrite
127.0.0.1:6379> config set slowlog-log-slower-than 0
ok127.0.0.1:6379>
slowlog get [n]
n可以指定條數。不指定n則獲取所有慢查詢。
127.0.0.1:6379> slowlog get
1) 1) (integer) 1
2) (integer) 1535422960
3) (integer) 37
4) 1) "keys"
2) "*"
5) "127.0.0.1:51326"
6) ""
2) 1) (integer) 0
2) (integer) 1535422957
3) (integer) 430
4) 1) "config"
2) "set"
3) "slowlog-log-slower-than"
4) "0"
5) "127.0.0.1:51326"
6) ""
127.0.0.1:6379>
每個慢查詢由四個屬性組成
慢查詢的標識id
發生時間戳
命令耗時
執行的命令和引數
slowlog len
127.0.0.1:6379> slowlog len
(integer) 3
127.0.0.1:6379>
slowlog reset
127.0.0.1:6379> slowlog reset
ok
慢查詢可以有效的幫助我們找到redis的瓶頸,實際使用中:
1、slowlog-max-len配置建議:線上建議調大慢查詢列表,記錄慢查詢redis會對長命令進行截斷操作,所以不會占用大量記憶體,增大列表長度可以減小慢查詢被佇列塞滿而剔除的可能行,如線上設定1000以上
2、slowlog-log-slower-than配置建議:預設值超過10毫秒判斷為慢查詢,需要根據redis併發量調整該值,由於redis採用單執行緒響應命令,對於高流量場景,如果命令執行時間在1毫秒以上,那麼redis最多可支撐ops(operations運營操作)不到1000;因此對於高ops場景的redis建議設定為1毫秒
3、慢查詢只記錄命令執行時間,並不包括命令排隊和網路傳輸時間。
4、由於慢查詢日誌是乙個先進先出的佇列,如果慢查詢比較多的情況下,會丟失最早的慢查詢命令,為了防止這種情況發生,可以定期執行slowlog get 命令將慢查詢持久化到其他儲存中(如mysql),可以製作視覺化介面進行查詢。(以後的部落格會介紹cachecloud提供的這樣的功能,直接可以使用)
Redis 慢查詢分析
慢查詢,大家可能已經接觸到了mysql的慢查詢。我們配置乙個時間,如果查詢時間超過了我們設定的時間,我們就認為這是乙個慢查詢.慢查詢引數配置 redis 通過 slowlog log slower than 和 slowlog max len 分別配置慢查詢的閾值,以及慢查詢記錄的日誌長度。slow...
Redis 慢查詢分析
慢查詢,顧名思義就是比較慢的查詢,但是究竟是 慢呢?首先,我們了解一下redis命令執行的整個過程 傳送命令 命令排隊 命令執行 返回結果 在慢查詢的定義中,統計比較慢的時間段指的是命令執行這個步驟。沒有慢查詢,並不表示客戶端沒有超時問題,有可能網路傳輸有延遲,也有可能排隊的命令比較多。因為redi...
redis的慢查詢分析01
redis cli客戶端執行命令分為傳送命令 排隊 執行命令 返回結果 慢查詢只是統計執行命令的時間。慢查詢配置引數 slowlog log slower than 單位微妙,預設10000 slowlog max len 最多儲存多少條,預設128,慢查詢日誌是乙個先進先出的佇列 配置方式 修改配...