溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Redis主從復制模式和Redis Sentinel架構(gòu)的區(qū)別

發(fā)布時間:2021-09-03 18:47:04 來源:億速云 閱讀:150 作者:chen 欄目:大數(shù)據(jù)

這篇文章主要介紹“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主從復制模式和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é)點

Redis主從復制模式和Redis Sentinel架構(gòu)的區(qū)別
Redis主從復制模式和Redis Sentinel架構(gòu)的區(qū)別

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é)點:

Redis主從復制模式和Redis Sentinel架構(gòu)的區(qū)別

站在從節(jié)點的角度上看,它有一個主節(jié)點:

Redis主從復制模式和Redis Sentinel架構(gòu)的區(qū)別

  • 部署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)信息。

Redis主從復制模式和Redis Sentinel架構(gòu)的區(qū)別

  • 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>

向AI問一下細節(jié)

免責聲明:本站發(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)容。

AI