您好,登錄后才能下訂單哦!
這篇文章主要介紹“Redis主從復制模式和Redis Sentinel架構的區別”,在日常操作中,相信很多人在Redis主從復制模式和Redis Sentinel架構的區別問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Redis主從復制模式和Redis Sentinel架構的區別”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
提到哨兵我們第一個印象就是和安全保衛方面相關的。那么在Redis中也是一樣的,它也是保衛Redis的運行安全的。Redis在主從復制的模式下,如果主節點發生故障不能提供服務時,那我們可以人工的介入,將其中任何一個從節點晉升為主節點,然后我們還要通知其它子節點更新主節點信息。這樣Redis就可以繼續提供服務了。但在實際的場景中,如果我們采用人工介入的方式來解決主節點故障等問題是不恰當的,因為只要和人有關的操作就可能會有問題,其二人工進入的方式修復的比較慢。為了解決以上各種問題,于是Redis在2.8版本之后提供了Redis Sentinel(哨兵)功能來解決這種問題。所以這一篇中我們主要介紹Redis Sentinel的詳細使用。
在上面我們提到過,當Redis主節點發生故障時,我們可以采用人工介入的主式,選取一個從節點繼續提供服務,但這樣有很大的不便,無論是對于應用還是運維來說。對于應用方來說,主節點的故障可能導致數據的丟失及讀取數據錯誤,而對于運維來說故障的修復實時性和準確性則無法得到保障。所以當我們遇到上述問題并且Redis在2.8版本之后時,我們就可以使用Redis Sentinel功能,該功能能夠自動完成故障發現和故障轉移。
Redis Sentinel是一個分布式架構,其中包含若干個Sentinel節點和Redis數據節點。每個Sentinel節點都會對數據節點和其它的Sentinel節點進行監控,當它發現其它節點不可用時,會對該節點進行下線標識。如果被標識的節點是主節點,它會和其它的Sentinel節點進行商量,并且當大多數Sentinel節點都認為主節點不可用時,它們會選舉出一個Sentinel節點來完成自動故障轉移功能,同時Redis Sentinel會將這個變化實時通知給Redis應用方,且整個過程完全是自動的,無需人工介入。
下面我們看一下Redis主從復制模式和Redis Sentinel架構的區別。
下面我們簡單介紹一下Redis Sentinel中的幾個功能:
監控:Sentinel節點會定期檢測Redis數據節點,其余Sentinel節點是否可用。
通知:Sentinel節點會將故障轉移的結果通知給應用方。
主節點故障轉移:實現從節點晉升為主節點并維護后續正確的主從關系。
配置提供者:在Redis Sentinel結構中,客戶端在初始化的時候連接的是Sentinel節點集合,從中獲取主節點信息。
對于節點故障的判斷是由多個Sentinel節點共同完成的,這樣可以有效地防止誤判。下面我們了解一下Redis Sentinel的安裝與部署。
部署Redis數據節點
1.啟動主節點
2.啟動兩個從節點,因為從節點要配置主節點的信息,所以我們采用配置文件的方式配置,下面為具體的配置:
redis-6380.conf
port:6380
slaveof 127.0.0.1 6379
redis-6381.conf
port:6381
slaveof 127.0.0.1 6379
3.確認主從關系
站在主節點的角度上看,它有兩個從節點:
站在從節點的角度上看,它有一個主節點:
部署Sentinel節點
下面我們看一下Sentinel節點的具體配置:
1.配置Sentinel節點
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節點的默認端口為26379。
2)Sentinel monitor mymaster 127.0.0.1 6379 2代表sentinel-1節點需要監控127.0.0.1:6379這個主節點,2代表判斷主節點失敗至少需要2個Sentinel節點的同意,mymaster是主節點的別名,其余的參數以后在做詳細說明。
2.啟動Sentinel節點
Sentinel節點的啟動方法有兩種:
方法一:使用redis-sentinal命令:
redis-sentinel redis-sentinel-26379.conf
方法二:使用redis-server命令加--sentinel參數:
redis-server redis-sentinal-26379.conf --sentinel
3.確認
Sentinel節點因為本質是一個特殊的Redis節點,所以我們依然可以通過info命令查看它的相關信息。
Sentinel配置說明
下面我們詳細介紹一下Sentinel節點的配置說明。
1.sentinel monitor
配置如下:
sentinel monitor <master-name> <ip> <port> <guorum>
Sentinel節點會定期監控主節點。參數表示要監控的主節點的名字。表示監控主節占的ip,表示監控主節點的端口,表示要判斷主節點故障時所需要的票數。參數設置的越小,那么達到下線的條件就越寬松,反之越嚴格。正常情況下應該是該參數設置為Sentinel節點的一半加1。
2.sentinel down-after-milliseconds
配置如下:
sentinel down-after-milliseconds <master-name> <times>
每個Sentinel節點都要通過定期發送ping命令來判斷Redis數據節點和其余Sentinel節點是否可用,如果超過了down-after-milliseconds配置的時間且沒有回復,則判斷節點不可用。參數單位為毫秒。
3.sentinel parallel-syncs
配置如下:
sentinel parallel-syncs <master-name> <nums>
當Sentinel節點對主節點判斷故障時,Sentinel領導者節點會做故障轉移操作,選出新的節點,原來的節點會向新的主節點發起復制操作,parallel-syncs就是限制在一次故障轉移后,每次向新的主節點發起復制操作的從節點個數。
4.sentinel failover-timeout
配置如下:
sentinel failover-timeout <master-name> <times>
failover-timeout可以理解為故障轉移超時時間,但實際上它主要有4個階段:
選出合適從節點
晉升選出的從節點為主節點
命令其余從節點復制新的主節點
等待原主節點恢復后命令它去復制新的主節點
5.sentinel auth-pass
配置如下:
sentinel auth-pass <master-name> <password>
如果Sentinel監控的主節點配置了密碼,sentinel auth-pass配置通過添加主節點的密碼,防止Sentinel節點對主節點無法監控。
6.sentinel notification-script
配置如下:
sentinel notification-script <master-name> <script-path>
sentinel notification-script的作用是在故障轉移期間,當一些警告級別的Sentinel時間發生時,會觸發對應路徑的腳本,并向腳本發送相應的事件參數。
7.sentinel client-reconfig-script
配置如下:
sentinel client-reconfig-script <master-name> <script-path>
sentinel client-reconfig-script的作用是在故障轉移結束后,會觸發對應路徑腳本,并向腳本發送故障轉移結果的相關參數。
到此,關于“Redis主從復制模式和Redis Sentinel架構的區別”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。