关于redis哨兵机制的一些疑问

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服务是不能成功写入值的

原文地址:https://www.cnblogs.com/zhp-king/p/13740094.html