這篇文章為大家帶來了關於Redis的相關知識,其中主要介紹了哨兵模式的相關問題,包括了哨兵概念、哨兵作用、啟用哨兵、哨兵原理等等,希望對大家有幫助。
推薦學習:Redis教學
在一主多從結構中,如果master宕機了,就需要從多個slave中選出一個作為新的master,要想完成這樣的功能,就需要使用Redis的哨兵機制
哨兵 (sentinel) 是一個分散式系統,用於對主從結構中的每台伺服器進行監控,當發生故障時透過投票機制選擇新的master並將所有slave連接到新的master,如下圖所示:
通知(提醒):當被監控的伺服器出現問題時,向其他哨兵、Redis伺服器發送通知
#故障轉移:斷開宕機的master與slave的連接,選取一個slave作為master,將其他slave連接新的master,並告知客戶端新的伺服器位址
注意:哨兵也是redis伺服器,僅提供監控服務,不提供資料管理服務;通常哨兵的數量配置為單數(方便投票)
修改哨兵的設定檔sentinel.conf
,設定檔位於Redis目錄下,如下圖所示:
redis-sentinel filename #filename指的是配置文件名 #每个哨兵都要配置自己的配置文件
自動的執行投票、主從切換等過程
主要完成的功能:
1. master属性 runid role:master 2. 各个slave在master中保存的基本信息
slave属性 runid role:slave master_host、master_port offset
具體的內部運作原理如下所述:
哨兵在通知階段要不斷的去獲取master與slave的信息,然後將獲得的信息在各個哨兵之間進行共享。
具體的流程如下:
哨兵透過建立的cmd連接,向master、slave發送hello
指令,得到他們的訊息,然後在關係網中共用:
具體的流程如下所述:
sdown(只有一個哨兵認為master宕機)
odown(所有哨兵偵測之後,超過一半的哨兵認為master宕機)
slaveof no one 指令
slaveof 新masterIP埠 指令
以上是一起來分析Redis哨兵模式的詳細內容。更多資訊請關注PHP中文網其他相關文章!