redis 集群架構圖:
需要先配置redis主從,我這邊是單機部署的。
采用一主一從,兩個sentinel。
redis host: 172.31.11.235
redis-master port: 6380 sentinel1: 26380
redis-slave port: 6381 sentinel2: 26381
redis master redis.conf中添加:
masterauth "xxxx"
requirepass "xxxx"
redis slave redis.conf中添加:
masterauth "xxxx"
requirepass "xxxx"
slaveof 172.31.11.235 6380
redis sentinel1配置:
bind 172.31.11.235
port 26380
daemonize yes
logfile "/usr/local/redis-4.0.9/sentinel.log.26380"
#master1
# 哨兵監控這個master,在至少1個哨兵實例都認為master down后把master標記為odown
sentinel monitor master1 172.31.11.235 6380 1
#多少毫秒后,sentinel 認定redis master 服務器已掉線
sentinel down-after-milliseconds master1 5000
# 若sentinel在該配置值內未能完成failover操作(即故障時master/slave自動切換),則認為本次failover失敗
sentinel failover-timeout master1 10000
#sentinel can-failover master1 yes
sentinel parallel-syncs master1 2
# Generated by CONFIG REWRITE
dir "/usr/local/redis-4.0.9"
sentinel auth-pass master1 xxxxx
redis sentinel2配置:
bind 172.31.11.235
port 26381
daemonize yes
logfile "/usr/local/redis-4.0.9/sentinel.log.26381"
#master1
sentinel monitor master1 172.31.11.235 6380 1
sentinel down-after-milliseconds master1 5000
# Generated by CONFIG REWRITE
dir "/usr/local/redis-4.0.9"
sentinel failover-timeout master1 10000
sentinel auth-pass master1 xxxxx
分別啟動 redis-master、redis-slave 和兩個哨兵。
redis-server conf/redis.conf.6380 &
redis-server conf/redis.conf.6381 &
redis-sentinel sentinel.conf.26380 &
redis-sentinel sentinel.conf.26381 &
故障演練:
關閉 redis-master,查看master地址
可以看到主節點已正常完成切換,配置完成。
參考鏈接:http://www.yunweipai.com/archives/20444.html