上篇文章我们说到,一主二从的模式,如果主机挂掉,从机等待主机连上之后,继续成为主机的slave。
但是这样会影响我们业务的正常运转呀,我们怎么来做呢?
目前的我的服务器:
192.128.116.128 6379为主:
192.128.116.129 6380为从:
192.128.116.130 6381为从:
现在我们让主机挂掉
另外两台从机在等待,我们在一台从机6380上执行命令 SLAVEOF no one,
让他中断主从关系,成为master
让另外一台从机 6381 SLAVEOF 192.168.116.129 6380
这样的话,6380和6381两台机器之间成为主从关系,即使6379重连上了,也和80 81没关系。
这样的话,一主二从,主机挂了,从机执行相关命令反客为主,原来的两台从机之间形成一个主从关系。
但是这样需要我们手动去操作,不是自动化的,当然不可取啦,下面引入redis的哨兵模式,哨兵模式的文档看这里
<https://blog.csdn.net/qq_33101675/article/details/80641068>。
恢复之前的一主二从模式
1、我们分别进入三台机器 cd /usr/local/src/redis-4.0.9
cp sentinel.conf sentinel_bak.conf
rm -rf sentinel.conf
vim sentinel.conf
sentinel monitor mymaster 192.168.116.128 6379 2 sentinel
down-after-milliseconds mymaster 60000 sentinel failover-timeout mymaster
180000 sentinel parallel-syncs mymaster 1#sentinel auth-pass mymaster
123456 #如果你的redis集群有密码
把上面这个给写进去 sentinel.conf 里,注意
192.168.116.128是我的主机的ip,这个因人而异了,当然你可以写127.0.0.1
三台服务器做一样的工作,当然可以用scp。
准备工作都完成之后,三台机器都启动redis,
./redis-server ../redis.conf ,启动完成之后,就是
一主(192.168.116.128 6379)二从(192.168.116.128 6380 192.168.116.128 6381)
然后再分别启动sentinel服务,./redis-sentinel ../sentinel.conf
可以看到master是192.168.116.128 6379
这里也能看到,master是128,下面有两个slave,分别是129 130,这时我们把主机停掉
观察sentinel里日志的变化,稍微等待一会
发现经过重新选举之后,192.168.116.129 6380 为master了。
我们来看下 6380 和 6381里的 info replication 信息
6380:可以看到,这台从机经过选举变成了 master了。
接下来的测试有问题,正在解决。。。
热门工具 换一换