java

Redis6哨兵配置

rzk · 7月30日 · 2021年本文共3222个字 · 预计阅读11分钟115次已读

复制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为主节点
Redis6哨兵配置

可以看到6381连接不上了
查看6382已经选举为主节点
Redis6哨兵配置

可以看到6381没启动,在6382查看子节点只有一个
当启动6381后,在6382里面查看主从信息可以看到6381已经是属于6382的一个子节点
Redis6哨兵配置

0 条回应