复制sentinel.conf到opt/redis/conf并且修改名字
[root@rzk opt]# ls
redis redis-6.2.5 redis-6.2.5.tar.gz
[root@rzk opt]# cd redis-6.2.5/
[root@rzk redis-6.2.5]# ls
00-RELEASENOTES CONDUCT COPYING INSTALL MANIFESTO redis.conf runtest-cluster runtest-sentinel src TLS.md
BUGS CONTRIBUTING deps Makefile README.md runtest runtest-moduleapi sentinel.conf tests utils
[root@rzk redis-6.2.5]# 睿共享 cp sentinel.conf /opt/redis/conf
[root@rzk redis-6.2.5]# cd /opt/redis/conf/
[root@rzk conf]# ls
redis-6381.conf redis-6382.conf redis-6383.conf redis-common.conf sentinel.conf
[root@rzk conf]# mv sentinel.conf sentinel-common.conf
修改配置
#port 睿共享 26379 端口注释掉
daemonize yes 开启后台启动
# pidfile /var/run/redis-sentinel.pid 进程文件注释掉
#logfile "" 日志文件注释掉
sentinel monitor mymaster 172.16.39.59 6381 2
#哨兵监控主从 这个2 是这边开启三台服务器 如果要选举服务器就需要大于百分之50才能选举成功 3台服务器如果要选一台就需要大于2台
sentinel auth-pass mymaster 密码
sentinel down-after-milliseconds mymaster 30000
# 指定多少毫秒之后 主节点没有应答哨兵sentinel 此时 哨兵主观上认为主节点下线 默认30秒
# 这个配置项指定了在发生failover主备切换时多可以有多少个slave同时对新的master进行 同步, 这个数字越小,完成failover所需的时间就越长, 但是如果这个数字越大,就意味着越 多的slave因为replication而不可用。 可以通过将这个值设为 1 来保证每次只有一个slave 处于不能处理命令请求的状态。 # sentinel parallel-syncs <master-name> <numslaves> sentinel parallel-syncs mymaster 1
# 故障转移的超时时间 failover-timeout 可以用在以下这些方面:
#1. 同一个sentinel对同一个master两次failover之间的间隔时间。
#2. 当一个slave从一个错误的master那里同步数据开始计算时间。直到slave被纠正为向正确的master那 里同步数据时。
#3.当想要取消一个正在进行的failover所需要的时间。
#4.当进行failover时,配置所有slaves指向新的master所需的大时间。不过,即使过了这个超时, slaves依然会被正确配置为指向master,但是就不按parallel-syncs所配置的规则来了
# 默认三分钟 # sentinel failover-timeout <master-name> <milliseconds>
sentinel failover-timeout mymaster 180000
拷贝三个配置文件
[root@rzk conf]# touch sentinel-26381.conf
[root@rzk conf]# touch sentinel-26382.conf
[root@rzk conf]# touch sentinel-26383.conf
内容如下
#引用公共配置
include /opt/redis/conf/sentinel-common.conf
#进程端口号
port 26381
#进程编号记录文件
pidfile /var/run/sentinel-26381.pid
睿共享 #日志记录文件(为了方便查看日志,先注释掉,搭建好环境后再打开
logfile "/opt/redis/log/sentinel-26381.log"
#引用公共配置
include /opt/redis/conf/sentinel-common.conf
#进程端口号
port 26382
#进程编号记录文件
pidfile /var/run/sentinel-26382.pid
#日志记录文件(为了方便查看日志,先注释掉,搭建好环境后再打开
logfile "/opt/redis/log/sentinel-26382.log"
#引用公共配置
include /opt/redis/conf/sentinel-common.conf
#进程端口号
port 26383
#进程编号记录文件
pidfile /var/run/sentinel-26383.pid
#日志记录文件(为了方便查看日志,先注释掉,搭建好环境后再打开
logfile "/opt/redis/log/sentinel-26383.log"
修改完成后启动哨兵
[root@rzk conf]# cd /usr/local/redis/
[root@rzk redis]# ls
bin
[root@rzk redis]# cd bin/
[root@rzk bin]# ls
redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-sentinel redis-server
[root@rzk bin]# ./redis-sentinel /opt/redis/
conf/ data/ log/
[root@rzk bin]# ./redis-sentinel /opt/redis/conf/sentinel-26381.conf
[root@rzk bin]# ./redis-sentinel /opt/redis/conf/sentinel-26382.conf
[root@rzk bin]# ./redis-sentinel /opt/redis/conf/sentinel-26383.conf
[root@rzk bin]# ps -ef | grep redis
root 睿共享 7230 1 0 Jul30 ? 00:01:28 ./redis-server *:6381
root 7236 1 0 Jul30 ? 00:00:53 ./redis-server *:6382
root 7242睿共享 1 0 Jul30 ? 00:01:11 ./redis-server *:6383
root 8747 1 0 00:58 ? 00:00:00 ./redis-sentinel *:26381 [sentinel]
root 8817 1 0 00:59 ? 00:00:00 ./redis-sentinel *:26382 [sentinel]
root 8825 1 0 00:59 ? 00:00:00 ./redis-sentinel *:26383 [sentinel]
root 8833 8619 0 01:00 pts/0 00:00:00 grep --color=auto redis
模拟主服务器挂机
tail -f /opt/redis/log/sentinel-26381.log -- 查看日志
tail -f /opt/redis/log/sentinel-26382.log
tail -f /opt/redis/log/sentinel-26383.log
可以看到6381没启动,在6382查看子节点只有一个
当启动6381后,在6382里面查看主从信息可以看到6381已经是属于6382的一个子节点
![]()