真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

好用的Redis運(yùn)維工具有哪些

這篇文章主要為大家展示了“好用的redis運(yùn)維工具有哪些”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“好用的Redis運(yùn)維工具有哪些”這篇文章吧。

清遠(yuǎn)網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,清遠(yuǎn)網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為清遠(yuǎn)上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的清遠(yuǎn)做網(wǎng)站的公司定做!

我們?cè)趹?yīng)用Redis時(shí),經(jīng)常會(huì)面臨的運(yùn)維工作,包括Redis的運(yùn)行狀態(tài)監(jiān)控,數(shù)據(jù)遷移,主從集群、切片集群的部署和運(yùn)維。接下來(lái),我就從這三個(gè)方面,給你介紹一些工具。我們先來(lái)學(xué)習(xí)下監(jiān)控Redis實(shí)時(shí)運(yùn)行狀態(tài)的工具,這些工具都用到了Redis提供的一個(gè)監(jiān)控命令:INFO。

最基本的監(jiān)控命令:INFO命令

Redis本身提供的INFO命令會(huì)返回豐富的實(shí)例運(yùn)行監(jiān)控信息,這個(gè)命令是Redis監(jiān)控工具的基礎(chǔ)。

INFO命令在使用時(shí),可以帶一個(gè)參數(shù)section,這個(gè)參數(shù)的取值有好幾種,相應(yīng)的,INFO命令也會(huì)返回不同類型的監(jiān)控信息。我把INFO命令的返回信息分成5大類,其中,有的類別當(dāng)中又包含了不同的監(jiān)控內(nèi)容,如下表所示:

好用的Redis運(yùn)維工具有哪些

在監(jiān)控Redis運(yùn)行狀態(tài)時(shí),INFO命令返回的結(jié)果非常有用。如果你想了解INFO命令的所有參數(shù)返回結(jié)果的詳細(xì)含義,可以查看Redis官網(wǎng)的介紹。這里,我給你提幾個(gè)運(yùn)維時(shí)需要重點(diǎn)關(guān)注的參數(shù)以及它們的重要返回結(jié)果。

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

另外,當(dāng)你啟用RDB或AOF功能時(shí),你就需要重點(diǎn)關(guān)注下persistence參數(shù)的返回結(jié)果,你可以通過(guò)它查看到RDB或者AOF的執(zhí)行情況。

如果你在使用主從集群,就要重點(diǎn)關(guān)注下replication參數(shù)的返回結(jié)果,這里面包含了主從同步的實(shí)時(shí)狀態(tài)。

不過(guò),INFO命令只是提供了文本形式的監(jiān)控結(jié)果,并沒(méi)有可視化,所以,在實(shí)際應(yīng)用中,我們還可以使用一些第三方開(kāi)源工具,將INFO命令的返回結(jié)果可視化。接下來(lái),我要講的Prometheus,就可以通過(guò)插件將Redis的統(tǒng)計(jì)結(jié)果可視化。

面向Prometheus的Redis-exporter監(jiān)控

Prometheus是一套開(kāi)源的系統(tǒng)監(jiān)控報(bào)警框架。它的核心功能是從被監(jiān)控系統(tǒng)中拉取監(jiān)控?cái)?shù)據(jù),結(jié)合Grafana工具,進(jìn)行可視化展示。而且,監(jiān)控?cái)?shù)據(jù)可以保存到時(shí)序數(shù)據(jù)庫(kù)中,以便運(yùn)維人員進(jìn)行歷史查詢。同時(shí),Prometheus會(huì)檢測(cè)系統(tǒng)的監(jiān)控指標(biāo)是否超過(guò)了預(yù)設(shè)的閾值,一旦超過(guò)閾值,Prometheus就會(huì)觸發(fā)報(bào)警。

對(duì)于系統(tǒng)的日常運(yùn)維管理來(lái)說(shuō),這些功能是非常重要的。而Prometheus已經(jīng)實(shí)現(xiàn)了使用這些功能的工具框架。我們只要能從被監(jiān)控系統(tǒng)中獲取到監(jiān)控?cái)?shù)據(jù),就可以用Prometheus來(lái)實(shí)現(xiàn)運(yùn)維監(jiān)控。

Prometheus正好提供了插件功能來(lái)實(shí)現(xiàn)對(duì)一個(gè)系統(tǒng)的監(jiān)控,我們把插件稱為exporter,每一個(gè)exporter實(shí)際是一個(gè)采集監(jiān)控?cái)?shù)據(jù)的組件。exporter采集的數(shù)據(jù)格式符合Prometheus的要求,Prometheus獲取這些數(shù)據(jù)后,就可以進(jìn)行展示和保存了。

Redis-exporter就是用來(lái)監(jiān)控Redis的,它將INFO命令監(jiān)控到的運(yùn)行狀態(tài)和各種統(tǒng)計(jì)信息提供給Prometheus,從而進(jìn)行可視化展示和報(bào)警設(shè)置。目前,Redis-exporter可以支持Redis 2.0至6.0版本,適用范圍比較廣。

除了獲取Redis實(shí)例的運(yùn)行狀態(tài),Redis-exporter還可以監(jiān)控鍵值對(duì)的大小和集合類型數(shù)據(jù)的元素個(gè)數(shù),這個(gè)可以在運(yùn)行Redis-exporter時(shí),使用check-keys的命令行選項(xiàng)來(lái)實(shí)現(xiàn)。

此外,我們可以開(kāi)發(fā)一個(gè)Lua腳本,定制化采集所需監(jiān)控的數(shù)據(jù)。然后,我們使用scripts命令行選項(xiàng),讓Redis-exporter運(yùn)行這個(gè)特定的腳本,從而可以滿足業(yè)務(wù)層的多樣化監(jiān)控需求。

最后,我還想再給你分享兩個(gè)小工具:redis-stat和Redis Live。跟Redis-exporter相比,這兩個(gè)都是輕量級(jí)的監(jiān)控工具。它們分別是用Ruby和Python開(kāi)發(fā)的,也是將INFO命令提供的實(shí)例運(yùn)行狀態(tài)信息可視化展示。雖然這兩個(gè)工具目前已經(jīng)很少更新了,不過(guò),如果你想自行開(kāi)發(fā)Redis監(jiān)控工具,它們都是不錯(cuò)的參考。

除了監(jiān)控Redis的運(yùn)行狀態(tài),還有一個(gè)常見(jiàn)的運(yùn)維任務(wù)就是數(shù)據(jù)遷移。接下來(lái),我們?cè)賮?lái)學(xué)習(xí)下數(shù)據(jù)遷移的工具。

數(shù)據(jù)遷移工具Redis-shake

有時(shí)候,我們需要在不同的實(shí)例間遷移數(shù)據(jù)。目前,比較常用的一個(gè)數(shù)據(jù)遷移工具是Redis-shake,這是阿里云Redis和MongoDB團(tuán)隊(duì)開(kāi)發(fā)的一個(gè)用于Redis數(shù)據(jù)同步的工具。

Redis-shake的基本運(yùn)行原理,是先啟動(dòng)Redis-shake進(jìn)程,這個(gè)進(jìn)程模擬了一個(gè)Redis實(shí)例。然后,Redis-shake進(jìn)程和數(shù)據(jù)遷出的源實(shí)例進(jìn)行數(shù)據(jù)的全量同步。

這個(gè)過(guò)程和Redis主從實(shí)例的全量同步是類似的。

源實(shí)例相當(dāng)于主庫(kù),Redis-shake相當(dāng)于從庫(kù),源實(shí)例先把RDB文件傳輸給Redis-shake,Redis-shake會(huì)把RDB文件發(fā)送給目的實(shí)例。接著,源實(shí)例會(huì)再把增量命令發(fā)送給Redis-shake,Redis-shake負(fù)責(zé)把這些增量命令再同步給目的實(shí)例。

下面這張圖展示了Redis-shake進(jìn)行數(shù)據(jù)遷移的過(guò)程:

好用的Redis運(yùn)維工具有哪些

Redis-shake的一大優(yōu)勢(shì),就是支持多種類型的遷移。

首先,它既支持單個(gè)實(shí)例間的數(shù)據(jù)遷移,也支持集群到集群間的數(shù)據(jù)遷移

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

另外,因?yàn)镽edis-shake是阿里云團(tuán)隊(duì)開(kāi)發(fā)的,所以,除了支持開(kāi)源的Redis版本以外,Redis-shake還支持云下的Redis實(shí)例和云上的Redis實(shí)例進(jìn)行遷移,可以幫助我們實(shí)現(xiàn)Redis服務(wù)上云的目標(biāo)。

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

這里,我就要再給你介紹一個(gè)數(shù)據(jù)一致性比對(duì)的工具了,就是阿里云團(tuán)隊(duì)開(kāi)發(fā)的Redis-full-check。

Redis-full-check的工作原理很簡(jiǎn)單,就是對(duì)源實(shí)例和目的實(shí)例中的數(shù)據(jù)進(jìn)行全量比對(duì),從而完成數(shù)據(jù)校驗(yàn)。不過(guò),為了降低數(shù)據(jù)校驗(yàn)的比對(duì)開(kāi)銷,Redis-full-check采用了多輪比較的方法。

在第一輪校驗(yàn)時(shí),Redis-full-check會(huì)找出在源實(shí)例上的所有key,然后從源實(shí)例和目的實(shí)例中把相應(yīng)的值也都查找出來(lái),進(jìn)行比對(duì)。第一次比對(duì)后,redis-full-check會(huì)把目的實(shí)例中和源實(shí)例不一致的數(shù)據(jù),記錄到sqlite數(shù)據(jù)庫(kù)中。

從第二輪校驗(yàn)開(kāi)始,Redis-full-check只比較上一輪結(jié)束后記錄在數(shù)據(jù)庫(kù)中的不一致的數(shù)據(jù)。

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

我們可以自己設(shè)置比對(duì)的輪數(shù)。具體的方法是,在運(yùn)行redis-full-check命令時(shí),把參數(shù)comparetimes的值設(shè)置為我們想要比對(duì)的輪數(shù)。

等到所有輪數(shù)都比對(duì)完成后,數(shù)據(jù)庫(kù)中記錄的數(shù)據(jù)就是源實(shí)例和目的實(shí)例最終的差異結(jié)果了。

這里有個(gè)地方需要注意下,Redis-full-check提供了三種比對(duì)模式,我們可以通過(guò)comparemode參數(shù)進(jìn)行設(shè)置。comparemode參數(shù)有三種取值,含義如下:

  • KeyOutline,只對(duì)比key值是否相等;

  • ValueOutline,只對(duì)比value值的長(zhǎng)度是否相等;

  • FullValue,對(duì)比key值、value長(zhǎng)度、value值是否相等。

我們?cè)趹?yīng)用Redis-full-check時(shí),可以根據(jù)業(yè)務(wù)對(duì)數(shù)據(jù)一致性程度的要求,選擇相應(yīng)的比對(duì)模式。如果一致性要求高,就把comparemode參數(shù)設(shè)置為FullValue。

好了,最后,我再向你介紹一個(gè)用于Redis集群運(yùn)維管理的工具CacheCloud。

集群管理工具CacheCloud

CacheCloud是搜狐開(kāi)發(fā)的一個(gè)面向Redis運(yùn)維管理的云平臺(tái),它實(shí)現(xiàn)了主從集群、哨兵集群和Redis Cluster的自動(dòng)部署和管理,用戶可以直接在平臺(tái)的管理界面上進(jìn)行操作。

針對(duì)常見(jiàn)的集群運(yùn)維需求,CacheCloud提供了5個(gè)運(yùn)維操作。

  • 下線實(shí)例:關(guān)閉實(shí)例以及實(shí)例相關(guān)的監(jiān)控任務(wù)。

  • 上線實(shí)例:重新啟動(dòng)已下線的實(shí)例,并進(jìn)行監(jiān)控。

  • 添加從節(jié)點(diǎn):在主從集群中給主節(jié)點(diǎn)添加一個(gè)從節(jié)點(diǎn)。

  • 故障切換:手動(dòng)完成Redis Cluster主從節(jié)點(diǎn)的故障轉(zhuǎn)移。

  • 配置管理:用戶提交配置修改的工單后,管理員進(jìn)行審核,并完成配置修改。

當(dāng)然,作為運(yùn)維管理平臺(tái),CacheCloud除了提供運(yùn)維操作以外,還提供了豐富的監(jiān)控信息。

CacheCloud不僅會(huì)收集INFO命令提供的實(shí)例實(shí)時(shí)運(yùn)行狀態(tài)信息,進(jìn)行可視化展示,而且還會(huì)把實(shí)例運(yùn)行狀態(tài)信息保存下來(lái),例如內(nèi)存使用情況、客戶端連接數(shù)、鍵值對(duì)數(shù)據(jù)量。這樣一來(lái),當(dāng)Redis運(yùn)行發(fā)生問(wèn)題時(shí),運(yùn)維人員可以查詢保存的歷史記錄,并結(jié)合當(dāng)時(shí)的運(yùn)行狀態(tài)信息進(jìn)行分析。

如果你希望有一個(gè)統(tǒng)一平臺(tái),把Redis實(shí)例管理相關(guān)的任務(wù)集中托管起來(lái),CacheCloud是一個(gè)不錯(cuò)的工具。

以上是“好用的Redis運(yùn)維工具有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


文章名稱:好用的Redis運(yùn)維工具有哪些
當(dāng)前鏈接:http://weahome.cn/article/gicspd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部