学习记录03 --- 重新配置redis的哨兵模式

Posted huajidafahao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习记录03 --- 重新配置redis的哨兵模式相关的知识,希望对你有一定的参考价值。

查阅多方资料后,才发现昨天写的配置哨兵模式开启是错的,尴尬。。。

今天重新来配置一下,当然为了避免出现问题,先理清下思路,整理好信息

哨兵模式监控的节点最少三个,昨天监控了2个是不够的,所以我又再一次的拷贝了一份redis.conf

服务器类型 是否主服务器  IP地址 端口号
Redis 192.168.200.128 6379
Redis 192.168.200.128 6380
Redis 192.168.200.128 6381
Sentinel - 192.168.200.128 26379
Sentinel - 192.168.200.128 26380
Sentinel - 192.168.200.128 26381
 

 

 

 

 

上面就是我三个节点以及三个哨兵模式的端口配置了,因为资源有限,就都弄在一个虚拟机上了

废话就不多说,开干了

先配置主服务器,修改redis-6379.conf,加上下面的配置

#设置主服务器的密码
requirepass "123456“
#使外网也能访问主数据库
bind 0.0.0.0

2个从服务器也需要配置一下,修改redis-6380.conf和redis-6381.conf,加上下面的配置

#指定主服务器
slaveof 192.168.200.128 6379
#主服务器密码
masterauth 123456

两个配置好后,我们再来配置哨兵,有3个节点,就需要3个哨兵了

首先设置第一个哨兵,其他的哨兵都是一样的

port 26379
daemonize yes
logfile "26379.log"
dir "/usr/local/redis/bin"
sentinel deny-scripts-reconfig yes
sentinel monitor mymaster 192.168.200.128 6379 2
sentinel failover-timeout mymaster 15000
sentinel auth-pass mymaster 123456
bind 192.168.200.128 127.0.0.1
# Generated by CONFIG REWRITE
protected-mode no
sentinel config-epoch mymaster 0
sentinel leader-epoch mymaster 0
sentinel current-epoch 0

接下来先启动主服务器,后启动从服务器,最后启动三个哨兵即可

我们来测试一下,我们突然停掉主服务器,看看哨兵能不能完成故障转移

#发现master无法连接了
2722:X 29 Jul 2019 19:13:01.161 # +sdown master mymaster 192.168.200.128 6379
#经过投票后,有3个sentinel发现master不能用
2722:X 29 Jul 2019 19:13:01.219 # +odown master mymaster 192.168.200.128 6379 #quorum 3/2
#当前配置版本被更新
2722:X 29 Jul 2019 19:13:01.219 # +new-epoch 1
#达成故障转移条件,等待其他sentinel的选举
2722:X 29 Jul 2019 19:13:01.219 # +try-failover master mymaster 192.168.200.128 6379
#开始投票选举slave服务器
2722:X 29 Jul 2019 19:13:01.221 # +vote-for-leader 0a15116eb684859ad0405cd5878f7a3996d7b9d0 1
2722:X 29 Jul 2019 19:13:01.225 # 108dfb973098e0bafe67f8500d45b742b5c257eb voted for 0a15116eb684859ad0405cd5878f7a3996d7b9d0 1
2722:X 29 Jul 2019 19:13:01.226 # 0decb1582394f4c013012c7df1693138cfd26f20 voted for 0a15116eb684859ad0405cd5878f7a3996d7b9d0 1
2722:X 29 Jul 2019 19:13:01.312 # +elected-leader master mymaster 192.168.200.128 6379
2722:X 29 Jul 2019 19:13:01.313 # +failover-state-select-slave master mymaster 192.168.200.128 6379
#把选举出来的slave进行身份master切换
2722:X 29 Jul 2019 19:13:01.398 # +selected-slave slave 192.168.200.128:6381 192.168.200.128 6381 @ mymaster 192.168.200.128 6379
2722:X 29 Jul 2019 19:13:01.398 * +failover-state-send-slaveof-noone slave 192.168.200.128:6381 192.168.200.128 6381 @ mymaster 192.168.200.128 6379
2722:X 29 Jul 2019 19:13:01.499 * +failover-state-wait-promotion slave 192.168.200.128:6381 192.168.200.128 6381 @ mymaster 192.168.200.128 6379
2722:X 29 Jul 2019 19:13:02.334 # +promoted-slave slave 192.168.200.128:6381 192.168.200.128 6381 @ mymaster 192.168.200.128 6379
#把故障转移failover改变reconf-slaves
2722:X 29 Jul 2019 19:13:02.334 # +failover-state-reconf-slaves master mymaster 192.168.200.128 6379
#sentinel发送slaveof命令把6380端口重新同步6379master
2722:X 29 Jul 2019 19:13:02.434 * +slave-reconf-sent slave 192.168.200.128:6380 192.168.200.128 6380 @ mymaster 192.168.200.128 6379
#离开不可用的master
2722:X 29 Jul 2019 19:13:03.353 # -odown master mymaster 192.168.200.128 6379
#slave被重新配置为另外一个master的slave,但数据还未发生
2722:X 29 Jul 2019 19:13:03.353 * +slave-reconf-inprog slave 192.168.200.128:6380 192.168.200.128 6380 @ mymaster 192.168.200.128 6379
#与master进行数据同步
2722:X 29 Jul 2019 19:13:03.353 * +slave-reconf-done slave 192.168.200.128:6380 192.168.200.128 6380 @ mymaster 192.168.200.128 6379
#故障转移完成
2722:X 29 Jul 2019 19:13:03.423 # +failover-end master mymaster 192.168.200.128 6379
#master地址发生改变
2722:X 29 Jul 2019 19:13:03.423 # +switch-master mymaster 192.168.200.128 6379 192.168.200.128 6381
#检测slave并添加到slave列表
2722:X 29 Jul 2019 19:13:03.423 * +slave slave 192.168.200.128:6380 192.168.200.128 6380 @ mymaster 192.168.200.128 6381
2722:X 29 Jul 2019 19:13:03.423 * +slave slave 192.168.200.128:6379 192.168.200.128 6379 @ mymaster 192.168.200.128 6381

通过上面的log解析之后,发现成功的进行的故障转移,那么这次的哨兵模式配置也是告一段落了

以上是关于学习记录03 --- 重新配置redis的哨兵模式的主要内容,如果未能解决你的问题,请参考以下文章

Redis哨兵模式(sentinel)学习总结及部署记录(主从复制读写分离主从切换)

Redis 主从复制群集和哨兵模式配置

Redis 学习总结(3) Redis 哨兵模式

学习记录02 --- redis数据库的安装,以及主从复制和哨兵模式开启

Redis学习总结(下)——哨兵模式集群应用问题解决

3台服务器Redis高可用哨兵模式