redis哨兵主从不切换

今天搭redis哨兵做小demo的时候出了点小问题,当master挂了之后,主从不进行切换。
多台从服务器一直重复出现如下日志:

15507:S 30 Apr 00:19:47.216 * Connecting to MASTER 127.0.0.1:6379
15507:S 30 Apr 00:19:47.216 * MASTER <-> SLAVE sync started
15507:S 30 Apr 00:19:47.216 # Error condition on socket for SYNC: Connection refused
15507:S 30 Apr 00:19:48.248 * Connecting to MASTER 127.0.0.1:6379
15507:S 30 Apr 00:19:48.248 * MASTER <-> SLAVE sync started
15507:S 30 Apr 00:19:48.248 # Error condition on socket for SYNC: Connection refused

然后每台哨兵只是出现如下日志:

15521:X 30 Apr 00:18:50.832 # +sdown master mymaster 127.0.0.1 6381

后来还出现了这样的日志:

try-failover failover-abort-not-elected

并没有进行主从切换。

网上很多人说的一个解决方案:
将redis的bind改为0.0.0.0而不是127.0.0.1。你们可以尝试一下是否是这个问题,反正我的不是。

我哨兵测试搭建的是1主2从
配置文件如下:
6379(主):

bind 0.0.0.0
port 6379
#logfile "6379.log"
dir "/root/redis-4.0.11/data"

daemonize no
appendonly yes
appendfsync everysec
appendfilename "appendonly-6379.aof"

6380(从):

bind 0.0.0.0
port 6380
#logfile "6380.log"		
dir "/root/redis-4.0.11/data"

daemonize no
appendonly yes
appendfsync everysec
appendfilename "appendonly-6380.aof"
slaveof 127.0.0.1 6379		

6381(从):

bind 0.0.0.0
port 6381
#logfile "6381.log"
dir "/root/redis-4.0.11/data"

daemonize no
appendonly yes
appendfsync everysec
appendfilename "appendonly-6381.aof"
slaveof 127.0.0.1 6379		

问题不是在上面,是在下面:
26379(哨兵一):这个配置文件是没有问题的

port 26379			

dir "/root/redis-4.0.0/data"				

sentinel monitor mymaster 127.0.0.1 6379 2		 

sentinel down-after-milliseconds mymaster 30000

sentinel parallel-syncs mymaster 1

sentinel failover-timeout mymaster 180000

26380(哨兵二):问题就在这里!!!!!!

port 26380			

dir "/root/redis-4.0.0/data"				

sentinel monitor mymaster 127.0.0.1 6380 2			# 这里连接的应该是 6379!!而不是6380 

sentinel down-after-milliseconds mymaster 30000

sentinel parallel-syncs mymaster 1

sentinel failover-timeout mymaster 180000

26382(从):这里也是一样的问题!!!!

port 26381			

dir "/root/redis-4.0.0/data"				

sentinel monitor mymaster 127.0.0.1 6381 2		 # 这里连接的应该是 6379!!而不是6382 

sentinel down-after-milliseconds mymaster 30000

sentinel parallel-syncs mymaster 1

sentinel failover-timeout mymaster 180000

哨兵我经常搭,可能是加班到太晚了吧~,人都有点恍恍惚惚的。写完这篇睡觉了。

不知道各位是不是出现和我一样的问题。

关于哨兵的搭建以及原理,大家可以看我这篇文章:Redis哨兵机制

你可能感兴趣的:(redis)