Redis 命令redis
redis-server網絡
redis-cli -h 127.0.0.1 -p 6379 -a password命令行
query在線分析 線程
redis-cli MONITOR | head -n 5000 | ./redis-faina.py 日誌
監控正在請求執行的命令server
在cli下執行monitor,生產環境慎用。ip
獲取慢查詢get
SLOWLOG GET 10
結果爲查詢ID、發生時間、運行時長和原命令 默認10毫秒,默認只保留最後的128條。單線程的模型下,一個請求佔掉10毫秒是件大事情,注意設置和顯示的單位爲微秒,注意這個時間是不包含網絡延遲的。
slowlog get 獲取慢查詢日誌
slowlog len 獲取慢查詢日誌條數
slowlog reset 清空慢查詢 it
配置監控
config set slowlog-log-slower-than 100 (單位微秒默認10000)
config set slowlog-max-len 1024 日誌最多存個數(默認128)
config rewrite 慢查詢日誌重置
慢查詢分析配置
關於 Redis 慢查詢的配置有兩個,分別是 slowlog-log-slower-than 和 slowlog-max-len。
1.slowlog-log-slower-than,用來控制慢查詢的閾值,全部執行時間超過該值的命令都會被記錄下來。該值的單位爲微秒,默認值爲 10000,若是設置爲 0,那麼全部的記錄都會被記錄下來,若是設置爲小於 0 的值,那麼對於任何命令都不會記錄,即關閉了慢查詢。能夠經過在配置文件中設置,或者用 config set 命令來設置:
config set slowlog-log-slower-than 10000
2.slowlog-max-len,用來設置存儲慢查詢記錄列表的大小,默認值爲 128,當該列表滿了時,若是有新的記錄進來,那麼 Redis 會把隊最舊的記錄清理掉,而後存儲新的記錄。在生產環境咱們能夠適當調大,好比調成 1000,這樣就能夠緩衝更多的記錄,方便故障的排查。配置方法和 slowlog-log-slower-than 相似,能夠在配置文件中指定,也能夠在命令行執行 config set 來設置:
config set slowlog-max-len 1000
查看慢查詢日誌
儘管 Redis 把慢查詢日誌記錄到了內部的列表,但咱們不能直接操做該列表,Redis 專門提供了一組命令來查詢慢查詢日誌:
1. 獲取慢查詢日誌:
slowlog get [n]
下面操做返回當前 Redis 的全部慢查詢記錄,能夠經過參數 n 指定查看條數:
127.0.0.1:6379> slowlog get
1) 1) (integer) 456
2) (integer) 1531632044
3) (integer) 3
4) 1) "get"
2) "m"
5) "127.0.0.1:50106"
6) ""
2) 1) (integer) 455
2) (integer) 1531632037
3) (integer) 14
4) 1) "keys"
2) "*"
5) "127.0.0.1:50106"
6) ""
結果說明:
1) 慢查詢記錄 id;
2) 發起命令的時間戳;
3) 命令耗時,單位爲微秒;
4) 該條記錄的命令及參數;
5) 客戶端網絡套接字(ip: port);
6) 「」
3.慢查詢日誌重置
slowlog reset
其實是對慢查詢列表作清理操做:
127.0.0.1:6379> slowlog len (integer) 461 127.0.0.1:6379> slowlog reset OK 127.0.0.1:6379> slowlog len (integer) 1