成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

工作中Redis有哪些好用的運維工具

開發 開發工具
本文中我給大家介紹了幾種 Redis 的運維工具,我們先了解了 Redis 的 INFO 命令,這個命令是監控工具的基礎,監控工具都會基于 INFO 命令提供的信息進行二次加工。

工作中使用 Redis 時,如果大家公司沒有專業運維,可能開發人員就會面臨這些運維的工作,包括 Redis 的運行狀態監控,數據遷移,主從集群、切片集群的部署和運維等等。本文我就從這三個方面,給大家介紹一些工具,幫助大家更好的運維管理 Redis。最后文末還有免費紅包封面可以領取,回饋給各位讀者朋友。

本文目錄如下,

圖片圖片

最基本的監控命令:INFO 命令

我們先來學習下監控 Redis 實時運行狀態的工具,這些工具都用到了 Redis 提供的一個監控命令:INFO。

Redis 本身提供的 INFO 命令會返回豐富的實例運行監控信息,這個命令是 Redis 監控工具的基礎。

INFO 命令在使用時,可以帶一個參數 section,這個參數的取值有好幾種,相應的,INFO 命令也會返回不同類型的監控信息。我把 INFO 命令的返回信息分成 5 大類,其中,有的類別當中又包含了不同的監控內容,如下表所示:

圖片圖片

在監控 Redis 運行狀態時,INFO 命令返回的結果非常有用。如果你想了解 INFO 命令的所有參數返回結果的詳細含義,可以查看 Redis 官網的介紹。這里,我給你提幾個運維時需要重點關注的參數以及它們的重要返回結果。

首先,無論你是運行單實例或是集群,我建議你重點關注一下 stat、commandstat、cpu 和 memory 這四個參數的返回結果,這里面包含了命令的執行情況(比如命令的執行次數和執行時間、命令使用的 CPU 資源),內存資源的使用情況(比如內存已使用量、內存碎片率),CPU 資源使用情況等,這可以幫助我們判斷實例的運行狀態和資源消耗情況。

另外,當你啟用 RDB 或 AOF 功能時,你就需要重點關注下 persistence 參數的返回結果,你可以通過它查看到 RDB 或者 AOF 的執行情況。

如果你在使用主從集群,就要重點關注下 replication 參數的返回結果,這里面包含了主從同步的實時狀態。

不過,INFO 命令只是提供了文本形式的監控結果,并沒有可視化,所以,在實際應用中,我們還可以使用一些第三方開源工具,將 INFO 命令的返回結果可視化。接下來,我要講的 Prometheus,就可以通過插件將 Redis 的統計結果可視化。

面向 Prometheus 的 Redis-exporter 監控

圖片圖片

Prometheus 是一套開源的系統監控報警框架。它的核心功能是從被監控系統中拉取監控數據,結合 Grafana 工具,進行可視化展示。而且,監控數據可以保存到時序數據庫中,以便運維人員進行歷史查詢。同時,Prometheus 會檢測系統的監控指標是否超過了預設的閾值,一旦超過閾值,Prometheus 就會觸發報警。

Prometheus 官網地址:https://prometheus.io/

對于系統的日常運維管理來說,這些功能是非常重要的。而 Prometheus 已經實現了使用這些功能的工具框架。我們只要能從被監控系統中獲取到監控數據,就可以用 Prometheus 來實現運維監控。

Prometheus 正好提供了插件功能來實現對一個系統的監控,我們把插件稱為 exporter,每一個 exporter 實際是一個采集監控數據的組件。exporter 采集的數據格式符合 Prometheus 的要求,Prometheus 獲取這些數據后,就可以進行展示和保存了。

Redis-exporter 就是用來監控 Redis 的,它將 INFO 命令監控到的運行狀態和各種統計信息提供給 Prometheus,從而進行可視化展示和報警設置。目前,Redis-exporter 可以支持 Redis 2.0 至 6.0 版本,適用范圍比較廣。

Redis-exporter 地址:https://github.com/oliver006/redis_exporter

除了獲取 Redis 實例的運行狀態,Redis-exporter 還可以監控鍵值對的大小和集合類型數據的元素個數,這個可以在運行 Redis-exporter 時,使用 check-keys 的命令行選項來實現。

此外,我們可以開發一個 Lua 腳本,定制化采集所需監控的數據。然后,我們使用 scripts 命令行選項,讓 Redis-exporter 運行這個特定的腳本,從而可以滿足業務層的多樣化監控需求。

除了監控 Redis 的運行狀態,還有一個常見的運維任務就是數據遷移。接下來,我們再來學習下數據遷移的工具。

數據遷移工具 Redis-shake

圖片圖片

有時候,我們需要在不同的實例間遷移數據。目前,比較常用的一個數據遷移工具是 Redis-shake,這是阿里云 Redis 和 MongoDB 團隊開發的一個用于 Redis 數據同步的工具。

Redis-shake 地址:https://github.com/tair-opensource/RedisShake

Redis-shake 的基本運行原理,是先啟動 Redis-shake 進程,這個進程模擬了一個 Redis 實例。然后,Redis-shake 進程和數據遷出的源實例進行數據的全量同步。

這個過程和 Redis 主從實例的全量同步是類似的。

源實例相當于主庫,Redis-shake 相當于從庫,源實例先把 RDB 文件傳輸給 Redis-shake,Redis-shake 會把 RDB 文件發送給目的實例。接著,源實例會再把增量命令發送給 Redis-shake,Redis-shake 負責把這些增量命令再同步給目的實例。

下面這張圖展示了 Redis-shake 進行數據遷移的過程:

圖片圖片

Redis-shake 的一大優勢,就是支持多種類型的遷移。

首先,它既支持單個實例間的數據遷移,也支持集群到集群間的數據遷移。

其次,有的 Redis 切片集群(例如 Codis)會使用 proxy 接收請求操作,Redis-shake 也同樣支持和 proxy 進行數據遷移。

另外,因為 Redis-shake 是阿里云團隊開發的,所以,除了支持開源的 Redis 版本以外,Redis-shake 還支持云下的 Redis 實例和云上的 Redis 實例進行遷移,可以幫助我們實現 Redis 服務上云的目標。

在數據遷移后,我們通常需要對比源實例和目的實例中的數據是否一致。如果有不一致的數據,我們需要把它們找出來,從目的實例中剔除,或者是再次遷移這些不一致的數據。

這里,我就要再給你介紹一個數據一致性比對的工具了,就是阿里云團隊開發的 Redis-full-check。

Redis-full-check 的工作原理很簡單,就是對源實例和目的實例中的數據進行全量比對,從而完成數據校驗。不過,為了降低數據校驗的比對開銷,Redis-full-check 采用了多輪比較的方法。

在第一輪校驗時,Redis-full-check 會找出在源實例上的所有 key,然后從源實例和目的實例中把相應的值也都查找出來,進行比對。第一次比對后,redis-full-check 會把目的實例中和源實例不一致的數據,記錄到 sqlite 數據庫中。

從第二輪校驗開始,Redis-full-check 只比較上一輪結束后記錄在數據庫中的不一致的數據。

為了避免對實例的正常請求處理造成影響,Redis-full-check 在每一輪比對結束后,會暫停一段時間。隨著 Redis-shake 增量同步的進行,源實例和目的實例中的不一致數據也會逐步減少,所以,我們校驗比對的輪數不用很多。

我們可以自己設置比對的輪數。具體的方法是,在運行 redis-full-check 命令時,把參數 comparetimes 的值設置為我們想要比對的輪數。

等到所有輪數都比對完成后,數據庫中記錄的數據就是源實例和目的實例最終的差異結果了。

這里有個地方需要注意下,Redis-full-check 提供了三種比對模式,我們可以通過 comparemode 參數進行設置。

comparemode 參數有三種取值,含義如下:

  • KeyOutline,只對比 key 值是否相等;
  • ValueOutline,只對比 value 值的長度是否相等;
  • FullValue,對比 key 值、value 長度、value 值是否相等。

我們在應用 Redis-full-check 時,可以根據業務對數據一致性程度的要求,選擇相應的比對模式。如果一致性要求高,就把 comparemode 參數設置為 FullValue。

好了,最后,我再向你介紹一個用于 Redis 集群運維管理的工具 CacheCloud。

集群管理工具 CacheCloud

圖片圖片

CacheCloud 是搜狐開發的一個面向 Redis 運維管理的云平臺,它實現了主從集群、哨兵集群和 Redis Cluster 的自動部署和管理,用戶可以直接在平臺的管理界面上進行操作。

CacheCloud 地址:https://github.com/sohutv/cachecloud

針對常見的集群運維需求,CacheCloud 提供了 5 個運維操作。

  • 下線實例:關閉實例以及實例相關的監控任務。
  • 上線實例:重新啟動已下線的實例,并進行監控。
  • 添加從節點:在主從集群中給主節點添加一個從節點。
  • 故障切換:手動完成 Redis Cluster 主從節點的故障轉移。
  • 配置管理:用戶提交配置修改的工單后,管理員進行審核,并完成配置修改。

當然,作為運維管理平臺,CacheCloud 除了提供運維操作以外,還提供了豐富的監控信息。

CacheCloud 不僅會收集 INFO 命令提供的實例實時運行狀態信息,進行可視化展示,而且還會把實例運行狀態信息保存下來,例如內存使用情況、客戶端連接數、鍵值對數據量。這樣一來,當 Redis 運行發生問題時,運維人員可以查詢保存的歷史記錄,并結合當時的運行狀態信息進行分析。

如果你希望有一個統一平臺,把 Redis 實例管理相關的任務集中托管起來,CacheCloud 是一個不錯的工具。

總結一下

本文中我給大家介紹了幾種 Redis 的運維工具,我們先了解了 Redis 的 INFO 命令,這個命令是監控工具的基礎,監控工具都會基于 INFO 命令提供的信息進行二次加工。

我們還學習了 3 種用來監控 Redis 實時運行狀態的運維工具,分別是 Redis-exporter、redis-stat 和 Redis Live。

關于數據遷移,我們既可以使用 Redis-shake 工具,也可以通過 RDB 文件或是 AOF 文件進行遷移。

最后就是集群管理,我們可以使用 CacheCloud 平臺,通過管理界面對 Redis 集群做管理和部署。

責任編輯:武曉燕 來源: 程序員wayn
相關推薦

2013-12-19 15:52:08

自動化運維自動化運維工具Puppet

2013-06-28 11:08:07

運維DBASA

2024-04-22 08:15:50

數據庫運維工具

2021-07-15 08:12:31

體系感面試邏輯思維

2016-05-03 13:25:54

自動化運維PUPPET

2019-02-19 09:14:52

IT運維系統

2015-10-12 11:00:23

編程學校工作

2012-05-14 09:58:03

51CTO技術周刊

2024-04-15 00:10:00

Redis數據庫

2024-02-28 07:53:30

Redis數據存儲數據庫

2019-02-01 10:23:05

2016-01-15 10:28:43

PaaS運維運維服務

2020-01-21 21:48:58

運維架構技術

2021-03-26 10:16:56

云計算Linux運維開發

2019-03-19 08:41:38

Linux運維變更

2021-04-18 21:07:32

門面模式設計

2015-10-30 10:40:45

意義數據運維運維

2022-08-24 09:50:40

系統運維

2011-05-24 09:28:17

2024-11-25 09:08:10

Redis高頻應用場景
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品一区二区三区中文字幕 | 国产美女在线精品免费 | 一区二区三区中文字幕 | 久久精品国产亚洲 | 国产在线视频一区 | 看一级毛片 | 久久久久亚洲 | 天天躁日日躁狠狠很躁 | 人人干人人草 | 国产精品日韩欧美一区二区三区 | 成人精品一区亚洲午夜久久久 | 黄网免费看 | 日韩在线成人 | 成人网在线观看 | 久久精品成人 | 毛片黄片免费看 | 中文字幕在线观看一区 | 国产精品1区 | 国产精品福利在线观看 | 亚洲视频一区在线播放 | 成年人在线观看视频 | 免费观看黄 | 日韩和的一区二在线 | 亚洲国产成人精品久久 | 免费观看一级视频 | 一区二区三区播放 | 日韩精品一区二区三区在线播放 | 三级视频国产 | 一级全黄视频 | 黄色网络在线观看 | 羞羞网站在线观看 | 久久99蜜桃综合影院免费观看 | 精品一区二区在线观看 | 欧美日韩综合 | 成人黄在线观看 | 一区二区三区视频免费观看 | 国产精品欧美一区二区三区不卡 | 国产成人99久久亚洲综合精品 | 久久国产欧美日韩精品 | 日韩精品一区在线 | 成年人在线视频 |