Redis哨兵模式
阿新 • • 發佈:2020-07-29
Master掛了,如何保證可用性,實現繼續讀寫
什麼是哨兵
Sentinel(哨兵)是用於監控Redis叢集中Master狀態的工具,是 Redis 高可用解決方案,哨兵可以監視一個或者多個redis master服務,以及這些master服務的所有從服務;當某個master服務宕機後,會把這個master下的某個從服務升級為master來替代已宕機的master繼續工作。
示例圖
配置哨兵監控master
建立並且配置sentinel.conf:
-
普通配置
port 26379 pidfile "/usr/local/redis/sentinel/redis-sentinel.pid" dir "/usr/local/redis/sentinel" daemonize yes protected-mode no logfile "/usr/local/redis/sentinel/redis-sentinel.log"
-
核心配置
# 配置哨兵 sentinel monitor mymaster 127.0.0.1 6379 2 # 密碼 sentinel auth-pass <master-name> <password> # master被sentinel認定為失效的間隔時間 sentinel down-after-milliseconds mymaster 30000 # 剩餘的slaves重新和新的master做同步的並行個數 sentinel parallel-syncs mymaster 1 # 主備切換的超時時間,哨兵要去做故障轉移,這個時候哨兵也是一個程序,如果他沒有去執行,超過這個時間後,會由其他的哨兵來處理 sentinel failover-timeout mymaster 180000
啟動哨兵 x 3
redis-sentinel sentinel.conf
測試
- master掛了,看slave是否成為master
- master恢復,觀察slave狀態
結論
master掛了以後,由於哨兵監控,剩餘slave會進行選舉,選舉後其中一個成為master,當原來的master恢復後,他會成為slave。