主從切換技術的方法是:當主服務器宕機後,需要手動把壹臺從服務器切換為主服務器,這就需要人工幹預,費事費力,還會造成壹段時間內服務不可用。 這不是壹種推薦的方式,更多時候,我們優先考慮 哨兵模式 。
哨兵模式是壹種特殊的模式,首先Redis提供了哨兵的命令,哨兵是壹個獨立的進程,作為進程,它會獨立運行。其原理是 哨兵通過發送命令,等待Redis服務器響應,從而監控運行的多個Redis實例。
這裏的哨兵有兩個作用
然而壹個哨兵進程對Redis服務器進行監控,可能會出現問題,為此,我們可以使用多個哨兵進行監控。各個哨兵之間還會進行監控,這樣就形成了多哨兵模式。
用文字描述壹下 故障切換(failover) 的過程。假設主服務器宕機,哨兵1先檢測到這個結果,系統並不會馬上進行failover過程,僅僅是哨兵1主觀的認為主服務器不可用,這個現象成為 主觀下線 。當後面的哨兵也檢測到主服務器不可用,並且數量達到壹定值時,那麽哨兵之間就會進行壹次投票,投票的結果由壹個哨兵發起,進行failover操作。切換成功後,就會通過發布訂閱模式,讓各個哨兵把自己監控的從服務器實現切換主機,這個過程稱為 客觀下線 。這樣對於客戶端而言,壹切都是透明的。
配置3個哨兵和1主2從的Redis服務器來演示這個過程。
首先配置Redis的主從服務器,修改redis.conf文件如下
主從服務器都需要配置
配置3個哨兵,每個哨兵的配置都是壹樣的。在Redis安裝目錄下有壹個sentinel.conf文件,copy壹份進行修改
上述關閉了保護模式,便於測試。