哨兵是建立在redis主从集群的基础上的,所以本文是承接上一篇redis主从复制的。一主二从三哨兵,哨兵也是部在主从节点上的,端口为26379
主从节点
master
node01 192.168.71.101 6379
slave1
node02 192.168.71.102 6379
slave2
node03 192.168.71.103 6379
哨兵节点
sentinel1
192.168.71.101 26379
sentinel2
192.168.71.102 26379
sentinel3
192.168.71.103 26379
哨兵配置
开启守护进程
daemonize yes
关闭保护模式
protected-mode no
指定监听主服务器名称、ip、port和几个sentinel检测异常执行故障转移
#mymaster是自定义的,因为我是三哨兵,所以指定当有2个哨兵检测到异常才执行故障转移
sentinel monitor mymaster 192.168.71.102 6379 2
指定监听服务器密码
#注意这个步骤必须在指定监听服务器名称后面,不然会报不知道mymaster
sentinel auth-pass mymaster 123456
其他配置使用默认配置
端口
port 26379
指定sentinel判定master断线时长
sentinel down-after-milliseconds mymaster 30000
指定故障切换超时时长
sentinel failover-timeout mymaster 900000
指定sentinel日志文件
logfile "/opt/redis/log/sentinel.log"
三台哨兵的配置都是一样的,配置完成后,分别启动三台机子的redis服务进程和sentinel服务进程
#启动redis服务进程
./redis-server ../redis.conf
#启动sentinel服务进程
./redis-server ../sentinel.conf --sentinel
#或者
./redis-sentinel ../sentinel.conf
打开192.168.71.101节点的sentinel日志文件查看有以下内容
[root@node03 log]# tail -20 sentinel.log
10656:X 17 Jun 14:00:43.355 * Running mode=sentinel, port=26379.
10656:X 17 Jun 14:00:43.356 # Sentinel ID is 69eba2364497f8ea68131787de656207cec5ee0e
10656:X 17 Jun 14:00:43.356 # +monitor master mymaster 192.168.71.101 6379 quorum 2
10656:X 17 Jun 14:00:43.356 * +slave slave 192.168.71.102:6379 192.168.71.102 6379 @ mymaster 192.168.71.101 6379
10656:X 17 Jun 14:00:43.372 * +sl