命令行搞一切之如何使用命令行爲 redis 作健康檢測

如何使用命令行檢查 redis 是否按預期工做?

redis-cli 基礎知識

使用 redis-cli 檢查數據庫健康情況聽起來很簡單,實際上,它是:Redis 主機上的簡單redis-cli PING返回PONG。這看起來不太行的樣子,但確實如此。返回PONG 的redis功能正常、身體健康,吃嘛嘛香。ios

更詳細一點:這意味着數據集已徹底加載,Redis 已準備好鏈接。若是某些東西不能正常工做,它會顯示錯誤消息,例如「(error) LOADING Redis is loading the dataset in memory」。這將在加載 rdb/aof 文件或等待複製完成時返回。redis

經過使用 redis-cli,您能夠輕鬆使用info命令和子命令來獲取更多統計信息和信息。數據庫

命令列表

要重複命令,您能夠輕鬆使用兩個選項進行監控:redis - cli - r 5 - i 2 <command> 將執行<command> 5 次,間隔爲 2 秒。架構

使用這些命令,您能夠輕鬆地將 redis 集成到您的監控中。只需將 redis-cli 命令添加爲自定義參數,例如添加到 Zabbix 或 Nagios。您還可使用 prometheus 導出器從 redis 中獲取指標。框架

集成延遲監控、報告、慢日誌

也許大家中的一些人會問本身,爲何咱們首先須要監控,由於 redis 的速度很是快。答案是:您說得對,redis 旨在爲每一個實例每秒處理大量查詢。但不幸的是,在大多數應用程序中,對平均響應時間和最壞狀況的延遲都有嚴格的要求。操作系統

儘管如此,由於 redis 有大量的命令,多且雜,也分爲三六九等。有些命令運行速度很快,並且運行速度爲常數或對數時間,而其餘命令則較慢,可能會致使延遲峯值。採用這種監控方式的其餘緣由是與操做系統的交互(例如磁盤持久性)和 redis 的單線程架構有關。命令行

自2.8.13版本起,redis 引入延遲監控,該命令有助於解決可能的延遲問題。如下機制是該框架的一部分:線程

  • 用延遲鉤子來採樣不一樣延遲敏感代碼的路徑
  • 由其餘事件分割的延遲峯值的時間序列記錄
  • 報告引擎從時間序列中獲取原始數據
  • 分析引擎根據測量提供人類可讀的報告和給出相應提示

如何啓用延遲監控?

在 redis 運行時,延遲監控能夠很容易地經過 CONFIG SET latency-monitor-threshold 100啓用。尾數以毫秒爲單位定義時間。在咱們的示例中,每一個須要超過 100ms 的事件都將被記錄爲延遲峯值。日誌

使用 LATENCY 命令報告信息

延遲監控子系統的用戶界面是LATENCY命令。像許多其餘 Redis 命令同樣,LATENCY接受修改其行爲的子命令。這些子命令是:code

  • LATENCY LATEST - 返回全部事件的最新延遲樣本。
  • LATENCY HISTORY - 返回給定事件的延遲時間序列。
  • LATENCY RESET - 重置一個或多個事件的延遲時間序列數據。
  • LATENCY GRAPH - 呈現事件延遲樣本的 ASCII 藝術圖。
  • LATENCY DOCTOR - 回覆人類可讀的延遲分析報告。

有關詳細信息,請參閱每一個子命令的文檔頁面

當 redis 遇到延遲峯值時我該怎麼辦?

下一步多是啓用慢日誌。配置命令爲 config set slowlog-log-slower-than 1000, 您能夠記錄每個持續時間更長,超過1000ms的事件。

相關文章
相關標籤/搜索