1. 程式人生 > >Redis哨兵基本概念

Redis哨兵基本概念

1.Sentinel(哨兵)是Redis 的高可用性解決方案。通過一個或多個Sentinel 例項組成的Sentinel 系統可以監視多個主伺服器和下屬的所有從伺服器,當主伺服器進入下線狀態時,自動將主伺服器下的從伺服器升級為新的主伺服器。

2.比如:server1下線,會升級server2位新的主伺服器

3.sentinel哨兵的作用

(1)Master 狀態監測,如果Master 異常,則會進行Master-slave 轉換,將其中一個Slave作為Master,將之前的Master作為Slave ;

(2)Master-Slave切換後,master_redis.conf、slave_redis.conf和sentinel.conf的內容都會發生改變,即master_redis.conf中會多一行slaveof的配置,sentinel.conf的監控目標會隨之調換 。

4.哨兵的工作模式

(1)每個Sentinel以每秒鐘一次的頻率向它所知的Master,Slave以及其他 Sentinel 例項傳送一個 PING 命令 
(2)伺服器在down-after-milliseconds給定的毫秒數之內, 沒有返回 Sentinel 例項傳送的 PING 命令的回覆, 或者返回一個錯誤, 則這個例項會被 Sentinel 標記為主觀下線。 
(3)如果一個Master被標記為主觀下線,則正在監視這個Master的所有 Sentinel 要以每秒一次的頻率確認Master的確進入了主觀下線狀態。 
(4)當有足夠數量的 Sentinel(大於等於配置檔案指定的值)在指定的時間範圍內確認Master的確進入了主觀下線狀態, 則Master會被標記為客觀下線,才會發生故障遷移,客觀下線只適用於主伺服器


(5)在一般情況下, 每個 Sentinel 會以每 10 秒一次的頻率向它已知的所有Master,Slave傳送 INFO 命令 ,當Master被 Sentinel 標記為客觀下線時,Sentinel 向下線的 Master 的所有 Slave 傳送 INFO 命令的頻率會從 10 秒一次改為每秒一次

(6)若沒有足夠數量的Sentinel同意Master已經下線,Master的客觀下線狀態就會被移除。 若重新發送的PING命令返回有效回覆,Master的主觀下線狀態就會被移除。

更多請見:Redis架構部署方案