redis配置哨兵问题,当主库宕机后,不自动切换

耳威巴帝 2018-05-09 12:02:44
这段时间在用阿里云服务区搭建redis主从,然后同时配置对应的哨兵,配置表如下:

1主2从1哨兵,都配置在了同一个服务器上面,不同端口,哨兵用的就是主redis的哨兵。

主库配置如下:
port:6379
slave-read-only no
requirepass yangdw
bind 0.0.0.0

2个从库配置如下:

从库1配置:
port:6380
slaveof 127.0.0.1 6379
slave-read-only no
masterauth yangdw
requirepass yangdw
bind 0.0.0.0

从库2配置:
port:6381
slaveof 127.0.0.1 6379
slave-read-only no
masterauth yangdw
requirepass yangdw
bind 0.0.0.0

哨兵配置:
port:6382
bind 0.0.0.0
sentinel monitor mymaster 127.0.0.1 6379 1
sentinet down-after-millisecond mymaster 10000
sentinet failover-timeout mymaster 10000
sentinet auth-pass mymaster yangdw

按照以上配置完成后,主从之间的数据通信是没有问题的,主库SET KEY后从库也会存在这个KEY,但是在我kill主库后,发现哨兵并没有切换到从库上面,而且哨兵的日志好像一直在连主库,日志如下:



我从网上找了很多资料,配置了无数遍了了,但哨兵就是没有切换,想请教一下大家,哪里出了问题?
...全文
8195 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yang108666 2021-04-18
  • 打赏
  • 举报
回复 3
哨兵配置复制时,myid不能相同 ,要删掉myid,删掉重新重启时会自动分配,试试这个
Ang Ga Ga 2021-01-12
  • 打赏
  • 举报
回复
引用 9 楼 Ang Ga Ga 的回复:
[quote=引用 1 楼 扎罗的盒子 的回复:]你是缺少一个配置导致你的哨兵不起作用 你要在你的redis.conf配置中有一项 protected-mode yes(设置成:protected-mode no;保护模式关闭,如果你不关闭保护模式,启动哨兵的时候,无法正常运行) 还有你在kill杀死进程的 时候一定要连redis-server 一起杀死 当然还有一种方式是为redis设置密码,每次都需要认证.我没有做,你也可以尝试一下
改了 可是还是没有用哎。[/quote]大家还有解决方法吗。
Ang Ga Ga 2021-01-12
  • 打赏
  • 举报
回复
引用 1 楼 扎罗的盒子 的回复:
你是缺少一个配置导致你的哨兵不起作用 你要在你的redis.conf配置中有一项 protected-mode yes(设置成:protected-mode no;保护模式关闭,如果你不关闭保护模式,启动哨兵的时候,无法正常运行) 还有你在kill杀死进程的 时候一定要连redis-server 一起杀死 当然还有一种方式是为redis设置密码,每次都需要认证.我没有做,你也可以尝试一下
改了 可是还是没有用哎。
ChenK. 2020-01-16
  • 打赏
  • 举报
回复
有时候看看sentinel中设置的推选时间,默认是3分钟。3分钟之后才会开始选举。可以设置短一点的时间,在看看
  • 打赏
  • 举报
回复
redis哨兵至少需要3个
Wayyyyyyyy 2019-09-30
  • 打赏
  • 举报
回复
引用 5 楼 Vic先生 的回复:
将主服务器判断为失效至少需要 2 个 Sentinel 同意 (只要同意 Sentinel 的数量不达标,自动故障迁移就不会执行)。 可以看官方文档:http://www.redis.cn/topics/sentinel.html
有用!
维克先生 2019-09-26
  • 打赏
  • 举报
回复
将主服务器判断为失效至少需要 2 个 Sentinel 同意 (只要同意 Sentinel 的数量不达标,自动故障迁移就不会执行)。 可以看官方文档:http://www.redis.cn/topics/sentinel.html
baidu_36831548 2018-10-09
  • 打赏
  • 举报
回复
我也遇到了,在哨兵里配置密码报错,于是把两台服务器密码都删了,然后哨兵监控到从服务器了。。
扎罗的盒子 2018-09-04
  • 打赏
  • 举报
回复
切记.你的一定要是redis.conf 不是sentine.conf
扎罗的盒子 2018-09-04
  • 打赏
  • 举报
回复
希望楼主采纳.我亲测的有用
扎罗的盒子 2018-09-04
  • 打赏
  • 举报
回复
你是缺少一个配置导致你的哨兵不起作用

你要在你的redis.conf配置中有一项
protected-mode yes(设置成:protected-mode no;保护模式关闭,如果你不关闭保护模式,启动哨兵的时候,无法正常运行)

还有你在kill杀死进程的 时候一定要连redis-server 一起杀死

当然还有一种方式是为redis设置密码,每次都需要认证.我没有做,你也可以尝试一下

25,985

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧