注:我在開源中國的博客不用了,對開源中國的技術支持喪失信心了,開始轉投segmentfault了
此爲原文,轉載請註明出處:https://segmentfault.com/a/11...mysql
redis有不少小功能,可是很實用。咱們來介紹幾個。redis
慢查詢
許多存儲系統都提供慢查詢日誌來幫助開發運維人員定位問題,好比mysql。慢查詢日誌就是系統計算每條命令的執行時間,當執行時間超過必定的閾值,就將這條命令的相關信息記錄下來,redis也提供了相似的功能。sql
這裏列出一個圖簡單表述一個redis命令的生命週期:
segmentfault
須要注意的是,慢查詢只統計命令命令執行的過程,網絡傳輸等並不統計,因此若是說沒有慢查詢並不表明客戶端沒有超時的問題。網絡
那麼回到慢查詢,這個東西如何配置,又存放在哪裏?
redis提供幾個配置,slowlog-log-slower-than 和 slowlog-max-len。併發
從字面上能夠看出slowlog-log-slower-than就是以前提到的閾值,單位是微秒,默認是10000微秒也就是10ms。也就說若是一條命令執行時間超過10ms,就會被記錄在慢日誌中。那爲何10ms也算慢查詢?在高併發得環境下,redis能夠執行每秒幾萬的命令,10ms其實在這種環境下已經算是比較高的了。設置有些高要求的系統不能容忍。運維
而另外一個參數, slowlog-max-len的用處是設置存儲慢日誌多少條。redis其實用一個列表在內存中保存慢日誌。當慢日誌列表已經達到最大的條數的時候,最先插入的那一條將被從列表移出。高併發
配置這兩個參數能夠修改配置文件,能夠再redis-cli中使用config set命令設置。spa
若是要將上面提到的方式配置的參數持久化到本地配置文件,能夠執行config rewrite命令。日誌
查詢慢日誌的命令:
slowlog get [n]其中n表明要查看多少條慢日誌。
一條慢日誌通常都會有前4個屬性,到了redis4.0以上版本出現了後面兩個屬性。
查看慢日誌的條數:
slowlog len
慢日誌重置:slowlog reset
慢查詢可以有效幫助我慢找到redis的問題,但在實際使用中有幾個建議:
今天就到這裏,有時間我會再介紹其餘實用的小功能。