redis監控

得到系統的狀態報告

咱們能夠用這個命令去了解當前redis的運行狀態web

redis-cli info

這條命令會顯示當前redis運行時的全局的包括各類方面狀態,下面就簡單分類說明一下redis

內存使用

  1. used_memory:使用了多少內存數據庫

  2. used_memory_peak:內存峯值多線程

持久化

  1. rdb_last_save_time:最近一次dump數據操做的時間併發

  2. rdb_changes_since_last_save:對上一次持久化以後更新了多少數據;能夠知道若是這時候出現故障,你會丟失多少數據。工具

主從複製

  1. master_link_statu: 若是這個值是up,說明同步正常;若是是down,這時須要注意一下輸出的其餘一些診斷信息,
    例如:性能

role:slave master_host:192.168.1.128 master_port:6379 master_link_status:down master_last_io_seconds_ago:-1 master_sync_in_progress:0 master_link_down_since_seconds:1356900595

配置一致

Redis 支持使用 CONFIG SET 操做來實現運行實的配置修改,這很方便,但同時也會致使一個問題。就是經過這個命令動態修改的配置,是不會同步到你的配置文件中去的。因此當你由於某些緣由重啓 Redis 時,你使用 CONFIG SET 作的配置修改就會丟失掉,因此咱們最好保證在每次使用 CONFIG SET 修改配置時,也把配置文件一塊兒相應地改掉。爲了防止人爲的失誤,因此咱們最好對配置進行監控,使用 CONFIG GET 命令來獲取當前運行時的配置,並與 redis.conf 中的配置值進行對比。

慢日誌

Redis 提供了 SLOWLOG 指令來獲取最近的慢日誌,Redis 的慢日誌是直接存在內存中的,因此它的慢日誌開銷並不大,在實際應用中,咱們經過 crontab 任務執行 SLOWLOG 命令來獲取慢日誌,而後將慢日誌存到文件中,並用 Kibana 生成實時的性能圖表來實現性能監控。
值得一提的是,Redis 的慢日誌記錄的時間,僅僅包括 Redis 自身對一條命令的執行時間,不包括 IO 的時間,好比接收客戶端數據和發送客戶端數據這些時間。另外,Redis的慢日誌和其它數據庫的慢日誌有一點不一樣,其它數據庫偶爾出現 100ms 的慢日誌可能都比較正常,由於通常數據庫都是多線程併發執行,某個線程執行某個命令的性能可能並不能表明總體性能,可是對Redis來講,它是單線程的,一旦出現慢日誌,可能就須要立刻獲得重視,最好去查一下具體是什麼緣由了。

監控服務

  1. Sentinel線程

    redis 主從監控工具,並實現主掛掉以後的自動故障轉移。在轉移的過程當中,它還能夠被配置去執行一個用戶自定義的腳本,在腳本中咱們就可以實現報警通知等功能。日誌

  2. Redis Livecode

    更通用的 Redis 監控方案。定時在 Redis 上執行 MONITOR 命令,獲取當前 Redis 當前正在執行的命令,並經過統計分析,生成web頁面的可視化分析報表。

  3. Redis Faina

    instagram 開發的 Redis 監控服務,原理和 Redis Live 相似

數據分佈

對 Redis 的數據集進行分析。好比想知道哪類型的 key 值佔用內存最多。
  1. Redis-sampler

    Redis做者開發的工具,經過採樣的方法,可以讓你瞭解當前Redis中的數據的大體類型,以及數據分佈情況
  2. Redis-audit

    是一個腳本,經過它能夠知道每一類key對內存的使用量。它能夠提供的數據有:某一類 key值的訪問頻率如何,有多少值設置了過時時間,某一類key值使用內存的大小,這很方便讓咱們能排查哪些 key 不經常使用或者壓根不用
  3. Redis-rdb-tools

    跟 Redis-audit 功能相似,不一樣的是它是經過對 rdb 文件進行分析來取得統計數據的。
相關文章
相關標籤/搜索