那些年踩过的坑之Redis报错:All sentinels down, cannot determine where is mymaster master is running...
1. 异常信息: All sentinels down, cannot determine where is mymaster master is running...
通过测试:
@Test
public void testSentinel(){
HashSet<String> sentinels = new HashSet<>();
sentinels.add("192.168.72.129:26379");
JedisSentinelPool pool = new JedisSentinelPool("mymaster", sentinels);
Jedis jedis = pool.getResource();
jedis.set("hello", "world");
System.out.println(jedis.get("hello"));
}
报出错误:
警告: Cannot get master address from sentinel running @ 192.168.72.129:26379.
Reason: redis.clients.jedis.exceptions.JedisConnectionException:
Failed connecting to host 192.168.72.129:26379. Trying next one.
redis.clients.jedis.exceptions.JedisConnectionException:
All sentinels down, cannot determine where is mymaster master is running...
(哨兵宕机, 不能确定主机位置)
还原报错现场:
学习搭配redis过程中, 在linux虚拟机上配置完redis-sentinel( 即启用redis哨兵配置搭建1主2从的redis服务器 )
开启了redis-sentinel服务, ip和port号为: 192.168.72.129:26379
首先, 能确定的是, linux防火墙已然关闭, sentinel.conf 的配置中, (注释掉bind)开放了不同主机的访问, 同时, redis的保护模式也已经关闭!!!
但是jedis连接还是出现了问题, 那么既然不是redis服务器方配置或者防护的问题, 那么问题只能出在了我的操作系统win7中!!!
在此基础上猜测, 是否是ip 连接 或者 是端口未开放呢?
于是通过以下操作:
cmd ->
telnet 192.168.72.129:26379
显示错误: 正在连接192.168.72.129:26379...无法打开到主机的连接。 在端口 23: 连接失败
------- 附win7中开启telnet的方法: 站内他人博文链接:https://www.cnblogs.com/ylcms/p/7250129.html, 博主:云龙笔记
看样子应该是linux的端口未开放导致无法连接.
继续, 查看linux服务端:
通过 netstat 查看与26379相关的端口信息, 查询到:
怎么回事? 端口好好地, 已经被redis服务监听了!!!
哎, 这时脑袋升起一丝不详的感觉, 难道是我的主从redis都没有启动, 而我直接加载了哨兵的配置吗?
哇的一声哭了出来, 忙活了这么久, 居然是我并没有启动主从机. 导致了这一系列bug!!!!
开启, 然后跑一下测试类, 再看看结果, 如下
连接正常...
虽然导致bug的问题如此"脑残", 不过从这过程之中, 我也对redis的分片, 乃至哨兵有了一个全面的认识, 算是祸福相依啦. 如果你也有连接redis的错误, 不妨跟我的思路来思考, 相信不难解决!
---记录2019年7月29日12:31:11
最新文章
- yii 验证问题
- Android分享一款漂亮的折叠书架菜单
- 面向移动设备的html5开发框架
- Octave安装和使用
- css实现省略号
- Struts2应用流程注解
- Linux的sleep()和usleep()的使用和区别
- 未能加载文件或程序集&ldquo;App_global.asax&rdquo;或它的某一个依赖项
- ng表单验证,提交以后才显示错误
- [置顶] 关于redhat系统yum源的配置2
- MongoDB查询命令具体解释
- ASP.NET MVC5 插件机制中插件的简单实现
- 3 MySQL SQL基础
- JS基础——循环很重要
- 工厂模式(Factory Method)
- Leetcode_144_Binary Tree Preorder Traversal
- idea 连接redis 出现 Caused by: java.net.SocketTimeoutException: connect timed out
- python 发送邮件模板
- 微信小程序scroll-view 横向和纵向scroll-view组件
- apache分割数组和集合的分法
热门文章
- Linux命令之tree(目录树结构)
- [六省联考2017]分手是祝愿——期望DP
- hdu4786 Fibonacci Tree[最小生成树]【结论题】
- HDU 6061 - RXD and functions | 2017 Multi-University Training Contest 3
- 删除3天前创建的以log结尾的文件
- 【leetcode】1295. Find Numbers with Even Number of Digits
- 2、创建MFC应用程序——基于对话框,时间计时器
- Luogu P2324 [SCOI2005]骑士精神 搜索
- use potato
- 配置魔药(DP)