redis哨兵是保证了redis的高可用,在redis主服务器down掉之后,选举从服务器成为新的redis主服务器,当之前的down掉的主服务器重连之后,会变成新主的从。
那么,在主down了后,到选举出新的主redis的这段时间内,redis究竟还能不能成功写入值?
做个小实验
实验环境
ubuntu18.04
redis 4.0.9
php 5.6
搭建一个1主2从,主port 6379,两个从6380,6381
3个哨兵 port分别是26379,26380,26381
用php作为客户端,连接redis,这里设置的key是time,value是当前时间戳,实验过程如下
(1)把redis主 手动kill掉
(2)用php连接redis,看是否能成功设置值
先测试php脚本,脚本代码如下
(1)php成功连接redis并成功设置值,脚本没问题(ip和port是当前redis的主服务器信息)
(2)把redis主 手动kill掉
(3)再次运行php脚本,发现redis依旧是返回旧的master 的ip和端口,并且连接失败
(4)等选举过程完成后,新的master出现了,服务才再次可用,新的主port是6380
结论:在redis主down掉之后,到选举新的master期间,redis服务是不能成功写入值的