Redis學習筆記 - Slow Log 慢查詢日誌

什麼是 SLOW LOG

1. Slow log 是 Redis 用來記錄查詢執行時間的日誌系統。

2. 查詢執行時間指的是不包括像客戶端響應(talking)、發送回覆等 IO 操做,而單單是執行一個查詢命令所耗費的時間。

3. slow log 保存在內存裏面,讀寫速度很是快,所以你能夠放心地使用它,沒必要擔憂由於開啓 slow log 而損害 Redis 的速度。

SLOW LOG 慢查詢配置項

1. slowlog-log-slower-than (慢查詢的閾值(單位:微秒))

  • 特色
  1. 當執行查詢命令消耗時間大於設置的閾值時,會將該條命令記錄到慢查詢日誌
  2. slowlog-log-slower-than=0,記錄全部命令
  3. slowlog-log-slower-than<0,不記錄任何命令
  4. 默認值爲 10000 (10毫秒,1秒 = 1,000毫秒 = 1,000,000微秒)

2. slowlog-max-len (慢查詢日誌最大條數)

  • 特色
  1. 先進先出的隊列 (即當慢查詢日誌達到最大條數後,會銷燬最先記錄的日誌條目)
  2. 固定長度
  3. 保存在內存內 (重啓redis會清空慢查詢日誌)
  4. 默認值爲 128

3. 配置方法

  1. 修改配置文件 redis.conf ,重啓redis
  2. 使用命令動態配置
  • CONFIG SET slowlog-log-slower-than 100
  • CONFIG SET slowlog-max-len 1024
  1. 查看慢查詢配置
  • CONFIG GET slowlog-*
127.0.0.1:6379> CONFIG GET slowlog-*
1) "slowlog-log-slower-than"
2) "100"
3) "slowlog-max-len"
4) "1024"

查看慢查詢日誌

1. SLOWLOG GET [n]

  • 獲取最新的n條慢查詢記錄
  • 若不加 n ,則獲取所有慢查詢記錄
127.0.0.1:6379> SLOWLOG GET 3
1) 1) (integer) 14                # 惟一性(unique)的日誌標識符
   2) (integer) 1522808219        # 被記錄命令的執行時間點,以 UNIX 時間戳格式表示
   3) (integer) 16                # 查詢執行時間,以微秒爲單位
   4) 1) "keys"                   # 執行的命令,以數組的形式排列
      2) "*"                      # 這裏完整的命令是 "keys *"
2) 1) (integer) 13
   2) (integer) 1522808215
   3) (integer) 7
   4) 1) "set"
      2) "name"
      3) "baicai"
3) 1) (integer) 12
   2) (integer) 1522808198
   3) (integer) 101
   4) 1) "set"
      2) "age"
      3) "25"

2. SLOWLOG LEN

  • 查看當前日誌的數量
127.0.0.1:6379> SLOWLOG LEN
(integer) 16

3. SLOWLOG RESET

  • 清空日誌
127.0.0.1:6379> SLOWLOG RESET
OK
127.0.0.1:6379> SLOWLOG LEN
(integer) 0

慢查詢運維經驗

1. slowlog-log-slower-than 不要設置過大,默認爲 10 ms,一般可設置爲 1ms。

2. slowlog-max-len 不要設置太小,一般可設置在1000左右。

3. 理解命令的生命週期

  • 一次查詢的生命週期

圖片描述

4. 按期持久化慢查詢日誌

  • 由於慢查詢日誌是保存在內存內,重啓redis就會清空慢查詢日誌,若要保留歷史的慢查詢日誌,可按期將慢查詢日誌存儲到mysql等數據庫中。

相關內容:

Redis學習筆記 - 數據類型與API(1)Key
Redis學習筆記 - 數據類型與API(2)String
Redis學習筆記 - 數據類型與API(3)List
Redis學習筆記 - 數據類型與API(4)Set
Redis學習筆記 - 數據類型與API(5)Sorted Set
Redis學習筆記 - 數據類型與API(6)Hashmysql

相關文章
相關標籤/搜索