您好,登錄后才能下訂單哦!
這篇文章主要介紹“Redis主從復制模式和Redis Sentinel架構(gòu)的區(qū)別”,在日常操作中,相信很多人在Redis主從復制模式和Redis Sentinel架構(gòu)的區(qū)別問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Redis主從復制模式和Redis Sentinel架構(gòu)的區(qū)別”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
提到哨兵我們第一個印象就是和安全保衛(wèi)方面相關(guān)的。那么在Redis中也是一樣的,它也是保衛(wèi)Redis的運行安全的。Redis在主從復制的模式下,如果主節(jié)點發(fā)生故障不能提供服務(wù)時,那我們可以人工的介入,將其中任何一個從節(jié)點晉升為主節(jié)點,然后我們還要通知其它子節(jié)點更新主節(jié)點信息。這樣Redis就可以繼續(xù)提供服務(wù)了。但在實際的場景中,如果我們采用人工介入的方式來解決主節(jié)點故障等問題是不恰當?shù)模驗橹灰腿擞嘘P(guān)的操作就可能會有問題,其二人工進入的方式修復的比較慢。為了解決以上各種問題,于是Redis在2.8版本之后提供了Redis Sentinel(哨兵)功能來解決這種問題。所以這一篇中我們主要介紹Redis Sentinel的詳細使用。
在上面我們提到過,當Redis主節(jié)點發(fā)生故障時,我們可以采用人工介入的主式,選取一個從節(jié)點繼續(xù)提供服務(wù),但這樣有很大的不便,無論是對于應(yīng)用還是運維來說。對于應(yīng)用方來說,主節(jié)點的故障可能導致數(shù)據(jù)的丟失及讀取數(shù)據(jù)錯誤,而對于運維來說故障的修復實時性和準確性則無法得到保障。所以當我們遇到上述問題并且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)控,當它發(fā)現(xiàn)其它節(jié)點不可用時,會對該節(jié)點進行下線標識。如果被標識的節(jié)點是主節(jié)點,它會和其它的Sentinel節(jié)點進行商量,并且當大多數(shù)Sentinel節(jié)點都認為主節(jié)點不可用時,它們會選舉出一個Sentinel節(jié)點來完成自動故障轉(zhuǎn)移功能,同時Redis Sentinel會將這個變化實時通知給Redis應(yīng)用方,且整個過程完全是自動的,無需人工介入。
下面我們看一下Redis主從復制模式和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.確認主從關(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é)點的默認端口為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ù)以后在做詳細說明。
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.確認
Sentinel節(jié)點因為本質(zhì)是一個特殊的Redis節(jié)點,所以我們依然可以通過info命令查看它的相關(guān)信息。
Sentinel配置說明
下面我們詳細介紹一下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ī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配置的時間且沒有回復,則判斷節(jié)點不可用。參數(shù)單位為毫秒。
3.sentinel parallel-syncs
配置如下:
sentinel parallel-syncs <master-name> <nums>
當Sentinel節(jié)點對主節(jié)點判斷故障時,Sentinel領(lǐng)導者節(jié)點會做故障轉(zhuǎn)移操作,選出新的節(jié)點,原來的節(jié)點會向新的主節(jié)點發(fā)起復制操作,parallel-syncs就是限制在一次故障轉(zhuǎn)移后,每次向新的主節(jié)點發(fā)起復制操作的從節(jié)點個數(shù)。
4.sentinel failover-timeout
配置如下:
sentinel failover-timeout <master-name> <times>
failover-timeout可以理解為故障轉(zhuǎn)移超時時間,但實際上它主要有4個階段:
選出合適從節(jié)點
晉升選出的從節(jié)點為主節(jié)點
命令其余從節(jié)點復制新的主節(jié)點
等待原主節(jié)點恢復后命令它去復制新的主節(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)移期間,當一些警告級別的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主從復制模式和Redis Sentinel架構(gòu)的區(qū)別”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。