這篇文章主要介紹“redis主從復(fù)制模式和Redis Sentinel架構(gòu)的區(qū)別”,在日常操作中,相信很多人在Redis主從復(fù)制模式和Redis Sentinel架構(gòu)的區(qū)別問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Redis主從復(fù)制模式和Redis Sentinel架構(gòu)的區(qū)別”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
創(chuàng)新互聯(lián)建站主要為客戶提供服務(wù)項目涵蓋了網(wǎng)頁視覺設(shè)計、VI標(biāo)志設(shè)計、成都營銷網(wǎng)站建設(shè)、網(wǎng)站程序開發(fā)、HTML5響應(yīng)式成都網(wǎng)站建設(shè)公司、移動網(wǎng)站建設(shè)、微商城、網(wǎng)站托管及網(wǎng)站維護、WEB系統(tǒng)開發(fā)、域名注冊、國內(nèi)外服務(wù)器租用、視頻、平面設(shè)計、SEO優(yōu)化排名。設(shè)計、前端、后端三個建站步驟的完善服務(wù)體系。一人跟蹤測試的建站服務(wù)標(biāo)準(zhǔn)。已經(jīng)為成都邊坡防護網(wǎng)行業(yè)客戶提供了網(wǎng)站營銷服務(wù)。
提到哨兵我們第一個印象就是和安全保衛(wèi)方面相關(guān)的。那么在Redis中也是一樣的,它也是保衛(wèi)Redis的運行安全的。Redis在主從復(fù)制的模式下,如果主節(jié)點發(fā)生故障不能提供服務(wù)時,那我們可以人工的介入,將其中任何一個從節(jié)點晉升為主節(jié)點,然后我們還要通知其它子節(jié)點更新主節(jié)點信息。這樣Redis就可以繼續(xù)提供服務(wù)了。但在實際的場景中,如果我們采用人工介入的方式來解決主節(jié)點故障等問題是不恰當(dāng)?shù)?,因為只要和人有關(guān)的操作就可能會有問題,其二人工進入的方式修復(fù)的比較慢。為了解決以上各種問題,于是Redis在2.8版本之后提供了Redis Sentinel(哨兵)功能來解決這種問題。所以這一篇中我們主要介紹Redis Sentinel的詳細(xì)使用。
在上面我們提到過,當(dāng)Redis主節(jié)點發(fā)生故障時,我們可以采用人工介入的主式,選取一個從節(jié)點繼續(xù)提供服務(wù),但這樣有很大的不便,無論是對于應(yīng)用還是運維來說。對于應(yīng)用方來說,主節(jié)點的故障可能導(dǎo)致數(shù)據(jù)的丟失及讀取數(shù)據(jù)錯誤,而對于運維來說故障的修復(fù)實時性和準(zhǔn)確性則無法得到保障。所以當(dāng)我們遇到上述問題并且Redis在2.8版本之后時,我們就可以使用Redis Sentinel功能,該功能能夠自動完成故障發(fā)現(xiàn)和故障轉(zhuǎn)移。
Redis Sentinel是一個分布式架構(gòu),其中包含若干個Sentinel節(jié)點和Redis數(shù)據(jù)節(jié)點。每個Sentinel節(jié)點都會對數(shù)據(jù)節(jié)點和其它的Sentinel節(jié)點進行監(jiān)控,當(dāng)它發(fā)現(xiàn)其它節(jié)點不可用時,會對該節(jié)點進行下線標(biāo)識。如果被標(biāo)識的節(jié)點是主節(jié)點,它會和其它的Sentinel節(jié)點進行商量,并且當(dāng)大多數(shù)Sentinel節(jié)點都認(rèn)為主節(jié)點不可用時,它們會選舉出一個Sentinel節(jié)點來完成自動故障轉(zhuǎn)移功能,同時Redis Sentinel會將這個變化實時通知給Redis應(yīng)用方,且整個過程完全是自動的,無需人工介入。
下面我們看一下Redis主從復(fù)制模式和Redis Sentinel架構(gòu)的區(qū)別。
下面我們簡單介紹一下Redis Sentinel中的幾個功能:
監(jiān)控:Sentinel節(jié)點會定期檢測Redis數(shù)據(jù)節(jié)點,其余Sentinel節(jié)點是否可用。
通知:Sentinel節(jié)點會將故障轉(zhuǎn)移的結(jié)果通知給應(yīng)用方。
主節(jié)點故障轉(zhuǎn)移:實現(xiàn)從節(jié)點晉升為主節(jié)點并維護后續(xù)正確的主從關(guān)系。
配置提供者:在Redis Sentinel結(jié)構(gòu)中,客戶端在初始化的時候連接的是Sentinel節(jié)點集合,從中獲取主節(jié)點信息。
對于節(jié)點故障的判斷是由多個Sentinel節(jié)點共同完成的,這樣可以有效地防止誤判。下面我們了解一下Redis Sentinel的安裝與部署。
部署Redis數(shù)據(jù)節(jié)點
1.啟動主節(jié)點
2.啟動兩個從節(jié)點,因為從節(jié)點要配置主節(jié)點的信息,所以我們采用配置文件的方式配置,下面為具體的配置:
redis-6380.conf
port:6380
slaveof 127.0.0.1 6379
redis-6381.conf
port:6381
slaveof 127.0.0.1 6379
3.確認(rèn)主從關(guān)系
站在主節(jié)點的角度上看,它有兩個從節(jié)點:
站在從節(jié)點的角度上看,它有一個主節(jié)點:
部署Sentinel節(jié)點
下面我們看一下Sentinel節(jié)點的具體配置:
1.配置Sentinel節(jié)點
port 26379
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
1)Sentinel節(jié)點的默認(rèn)端口為26379。
2)Sentinel monitor mymaster 127.0.0.1 6379 2代表sentinel-1節(jié)點需要監(jiān)控127.0.0.1:6379這個主節(jié)點,2代表判斷主節(jié)點失敗至少需要2個Sentinel節(jié)點的同意,mymaster是主節(jié)點的別名,其余的參數(shù)以后在做詳細(xì)說明。
2.啟動Sentinel節(jié)點
Sentinel節(jié)點的啟動方法有兩種:
方法一:使用redis-sentinal命令:
redis-sentinel redis-sentinel-26379.conf
方法二:使用redis-server命令加--sentinel參數(shù):
redis-server redis-sentinal-26379.conf --sentinel
3.確認(rèn)
Sentinel節(jié)點因為本質(zhì)是一個特殊的Redis節(jié)點,所以我們依然可以通過info命令查看它的相關(guān)信息。
Sentinel配置說明
下面我們詳細(xì)介紹一下Sentinel節(jié)點的配置說明。
1.sentinel monitor
配置如下:
sentinel monitor <master-name> <ip> <port> <guorum>
Sentinel節(jié)點會定期監(jiān)控主節(jié)點。參數(shù)表示要監(jiān)控的主節(jié)點的名字。表示監(jiān)控主節(jié)占的ip,表示監(jiān)控主節(jié)點的端口,表示要判斷主節(jié)點故障時所需要的票數(shù)。參數(shù)設(shè)置的越小,那么達到下線的條件就越寬松,反之越嚴(yán)格。正常情況下應(yīng)該是該參數(shù)設(shè)置為Sentinel節(jié)點的一半加1。
2.sentinel down-after-milliseconds
配置如下:
sentinel down-after-milliseconds <master-name> <times>
每個Sentinel節(jié)點都要通過定期發(fā)送ping命令來判斷Redis數(shù)據(jù)節(jié)點和其余Sentinel節(jié)點是否可用,如果超過了down-after-milliseconds配置的時間且沒有回復(fù),則判斷節(jié)點不可用。參數(shù)單位為毫秒。
3.sentinel parallel-syncs
配置如下:
sentinel parallel-syncs <master-name> <nums>
當(dāng)Sentinel節(jié)點對主節(jié)點判斷故障時,Sentinel領(lǐng)導(dǎo)者節(jié)點會做故障轉(zhuǎn)移操作,選出新的節(jié)點,原來的節(jié)點會向新的主節(jié)點發(fā)起復(fù)制操作,parallel-syncs就是限制在一次故障轉(zhuǎn)移后,每次向新的主節(jié)點發(fā)起復(fù)制操作的從節(jié)點個數(shù)。
4.sentinel failover-timeout
配置如下:
sentinel failover-timeout <master-name> <times>
failover-timeout可以理解為故障轉(zhuǎn)移超時時間,但實際上它主要有4個階段:
選出合適從節(jié)點
晉升選出的從節(jié)點為主節(jié)點
命令其余從節(jié)點復(fù)制新的主節(jié)點
等待原主節(jié)點恢復(fù)后命令它去復(fù)制新的主節(jié)點
5.sentinel auth-pass
配置如下:
sentinel auth-pass <master-name> <password>
如果Sentinel監(jiān)控的主節(jié)點配置了密碼,sentinel auth-pass配置通過添加主節(jié)點的密碼,防止Sentinel節(jié)點對主節(jié)點無法監(jiān)控。
6.sentinel notification-script
配置如下:
sentinel notification-script <master-name> <script-path>
sentinel notification-script的作用是在故障轉(zhuǎn)移期間,當(dāng)一些警告級別的Sentinel時間發(fā)生時,會觸發(fā)對應(yīng)路徑的腳本,并向腳本發(fā)送相應(yīng)的事件參數(shù)。
7.sentinel client-reconfig-script
配置如下:
sentinel client-reconfig-script <master-name> <script-path>
sentinel client-reconfig-script的作用是在故障轉(zhuǎn)移結(jié)束后,會觸發(fā)對應(yīng)路徑腳本,并向腳本發(fā)送故障轉(zhuǎn)移結(jié)果的相關(guān)參數(shù)。
到此,關(guān)于“Redis主從復(fù)制模式和Redis Sentinel架構(gòu)的區(qū)別”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
當(dāng)前文章:Redis主從復(fù)制模式和RedisSentinel架構(gòu)的區(qū)別
鏈接分享:http://jinyejixie.com/article18/posddp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、網(wǎng)站排名、外貿(mào)建站、云服務(wù)器、網(wǎng)站改版、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)