Redis慢查詢日誌

2022-06-08 03:51:11 字數 3094 閱讀 7359

**於

1、傳送命令

2、命令排隊

3、命令執行

4、返回結果

注意:慢查詢只統計步驟3的時間,所以沒有慢查詢並不代表客戶端沒有超時問題。換句話說。redis的慢查詢記錄時間指的是不包括像客戶端響應、傳送回覆等io操作,而單單是執行乙個查詢命令所耗費的時間。

config setslowlog-log-slower-than 20000

config setslowlog-max-len 1024

config rewrite

(1) 獲取慢查詢日誌

slowlog get n (引數n用來指定查詢的條數)

127.0.0.1:6379>slowlog get

1)1)(integer)8#日誌的唯一識別符號

2)(integer)1550636908#命令執行是的unix時間戳

3)(integer)113359#命令執行的時長,單位微妙

4)1)"slowlog"#執行的命令及命令引數

2)"get"

5)"127.0.0.1:59282"

6)""

2)1)(integer)7

2)(integer)1550636874

3)(integer)35369

4)1)"config"

2)"get"

3)"slowlog-log-slower-than"

5)"127.0.0.1:59282"

6)""

3)1)(integer)6

2)(integer)1542409903

3)(integer)154936

4)1)"replconf"

2)"ack"

3)"7677418"

5)"127.0.0.1:36457"

6)""

4)1)(integer)5

2)(integer)1538705609

3)(integer)53655

4)1)"replconf"

2)"ack"

3)"2503774"

5)"127.0.0.1:36457"

6)""

5)1)(integer)4

2)(integer)1538316696

3)(integer)124241

4)1)"replconf"

2)"ack"

3)"1960644"

5)"127.0.0.1:45997"

6)""

6)1)(integer)3

2)(integer)1537459324

3)(integer)161244

4)1)"replconf"

2)"ack"

3)"763182"

5)"127.0.0.1:36457"

6)""

7)1)(integer)2

2)(integer)1537293989

3)(integer)108165

4)1)"replconf"

2)"ack"

3)"532252"

5)"127.0.0.1:36457"

6)""

8)1)(integer)1

2)(integer)1536932942

3)(integer)37250

4)1)"replconf"

2)"ack"

3)"28028"

5)"127.0.0.1:36457"

6)""

9)1)(integer)0

2)(integer)1536912894

3)(integer)12932

4)1)"config"

2)"get"

3)"dir"

5)"127.0.0.1:46522"

6)""

127.0.0.1:6379>slowlog get2

1)1)(integer)8

2)(integer)1550636908

3)(integer)113359

4)1)"slowlog"

2)"get"

5)"127.0.0.1:59282"

6)""

2)1)(integer)7

2)(integer)1550636874

3)(integer)35369

4)1)"config"

2)"get"

3)"slowlog-log-slower-than"

5)"127.0.0.1:59282"

6)""

(2) 獲取慢查詢日誌列表當前數量

slowlog len

127.0.0.1:6379>slowlog len

(integer)9

(3) 慢查詢日誌重置

slowlog reset

127.0.0.1:6379>slowlog reset

ok127.0.0.1:6379>slowlog len

(integer)0

在生產環境中,慢查詢功能可以有效地幫助我們找到redis可能存在的瓶頸,但在實際使用過程中要注意以下幾點:

1、slowlog-max-len:線上建議調大慢查詢列表,記錄慢查詢時redis會對長命令做階段操作,並不會占用大量記憶體.增大慢查詢列表可以減緩慢查詢被剔除的可能,例如線上可設定為1000以上.

2、slowlog-log-slower-than:預設值超過10毫秒判定為慢查詢,需要根據redis併發量調整該值.

3、慢查詢只記錄命令的執行時間,並不包括命令排隊和網路傳輸時間.因此客戶端執行命令的時間會大於命令的實際執行時間.因為命令執行排隊機制,慢查詢會導致其他命令級聯阻塞,因此客戶端出現請求超時時,需要檢查該時間點是否有對應的慢查詢,從而分析是否為慢查詢導致的命令級聯阻塞.

4、由於慢查詢日誌是乙個先進先出的佇列,也就是說如果慢查詢比較多的情況下,可能會丟失部分慢查詢命令,為了防止這種情況發生,可以定期執行slowlog get命令將慢查詢日誌持久化到其他儲存中(例如:mysql等),然後可以通過視覺化工具進行查詢.

redis慢查詢日誌

許多儲存系統 如 mysql 提供慢查詢日誌幫助開發與運維人員定位系統存在的慢操作.所謂慢查詢日誌就是系統在命令執行前後計算每條命令的執行時間,當超過預設閾值,就將這條命令的相關資訊 例如 發生時間,耗時,命令的詳細資訊 記錄到慢查詢日誌中,redis也提供了類似的功能.slowlog get n ...

Redis 慢日誌查詢

連線 redis cli h host p port a password 認證 redis 127.0.0.1 6379 auth password ok redis 127.0.0.1 6379 ping pong 檢視慢日誌引數 config get slowlog 127.0.0.1 637...

redis設定慢查詢日誌

redis 的慢查詢日誌功能用於記錄執行時間超過給定時長的命令請求,使用者可以通過這個功能產生的日誌來監視和優化查詢速度。1 redis生命週期 慢查詢發生在第3階段 2 兩個配置 2.1 slowlog max len 選項指定伺服器最多儲存多少條慢查詢日誌。伺服器使用先進先出的方式儲存多條慢查詢...