前言
之前學習配置redis 主從配置,但是在master redis服務停止之後,這時候沒有master
需要我們人工去修改配置文件。來重新設置master。因爲隨機性很強所以需要人工隨時監控。這樣帶來不便 所以有了sentinel
來監控redis 主從服務服務。
sentinel 配置文件
port 26389
sentinel monitor mymaster 127.0.0.1 6379 1
sentinel down-after-milliseconds mymaster 60000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1
配置說明:port 就是你哨兵服務的端口號 沒有具體 只要和其他端口號區分開來就可以。
sentinel monitor mymaster 127.0.0.1 6379 1:第一行配置指示 Sentinel 去監視一個名爲 mymaster 的主服務器, 這個主服務器的 IP 地址爲 127.0.0.1 , 端口號爲 6379 , 而將這個主服務器判斷爲失效至少需要 2 個 Sentinel 同意 (只要同意 Sentinel 的數量不達標,自動故障遷移就不會執行)。
sentinel down-after-milliseconds mymaster 60000:選項指定了 Sentinel 認爲服務器已經斷線所需的毫秒數
sentinel failover-timeout mymaster :
-
同一個sentinel對同一個master兩次failover之間的間隔時間。
-
當一個slave從一個錯誤的master那裏同步數據開始計算時間。直到slave被糾正爲向正確的master那裏同步數據時。
-
當想要取消一個正在進行的failover所需要的時間。
-
當進行failover時,配置所有slaves指向新的master所需的最大時間。不過,即使過了這個超時,slaves依然會被正確配置爲指向master,但是就不按parallel-syncs所配置的規則來了
sentinel parallel-syncs mymaster:這個配置項指定了在發生failover主備切換時最多可以有多少個slave同時對新的master進行 同步,這個數字越小,完成failover所需的時間就越長,但是如果這個數字越大,就意味着越 多的slave因爲replication而不可用。可以通過將這個值設爲 1 來保證每次只有一個slave 處於不能處理命令請求的狀態。
其他參考:http://redisdoc.com/topic/sentinel.html
驗證測試
-
啓動redis-server 服務後檢查info
通過圖中發現master 就是6379
-
再模擬宕機6379發現如圖
通過info 命令發現自動切換成功。
注意:
- 可以通過配置加上密碼啓動redis-server配置文件也需要加,具體參考http://redisdoc.com/topic/sentinel.html — masterauth < master-password >
- 也可以通過命令修改從服務被選舉成主服務的優先級。priority is 100 默認100
越小越優先級高