远程连接redis集群报错(Too many Cluster redirections)

qq_28207959 2017-09-22 02:27:50
最近搭建redis集群环境,一直在报Too many Cluster redirections的错误。
具体信息如下:
1、redis集群搭建在同一台阿里云的ECS服务器上,使用端口为7001~7006,三主三从;
2、ECS安全策略以及ubuntu内部防火墙均已经开通;
3、redis配置文件中bind的是网卡的实际IP(非公网IP),运行集群脚本也是用的网卡的实际IP;
4、从ECS上通过内网IP和公网IP都可以连接redis集群,从本地可以通过Redis DesktopManager连接集群并成功读写;
5、用JedisCluster操作Redis则报错(Too many Cluster redirections);
6、搜索过这个问题的报错解决方法,基本都是因为bind了127.0.0.1,但是我已经bind了网卡的IP了,启动集群也用的是网卡IP。
请各位大神帮忙看看还有什么原因会导致这个问题,我悬赏分没有了,还请大神们施舍答案,谢谢。

java代码:
JedisPoolConfig poolConfig = new JedisPoolConfig();
// 最大连接数
poolConfig.setMaxTotal(1);
// 最大空闲数
poolConfig.setMaxIdle(1);
// 最大允许等待时间,如果超过这个时间还未获取到连接,则会报JedisException异常:
// Could not get a resource from the pool
poolConfig.setMaxWaitMillis(1000);
Set<HostAndPort> nodes = new LinkedHashSet<HostAndPort>();
nodes.add(new HostAndPort("x.x.x.x", 7001));
nodes.add(new HostAndPort("x.x.x.x", 7002));
nodes.add(new HostAndPort("x.x.x.x", 7003));
nodes.add(new HostAndPort("x.x.x.x", 7004));
nodes.add(new HostAndPort("x.x.x.x", 7005));
nodes.add(new HostAndPort("x.x.x.x", 7006));
JedisCluster cluster = new JedisCluster(nodes, poolConfig);
String name = cluster.get("name");
System.out.println(name);
cluster.set("age", "18");
System.out.println(cluster.get("age"));
try {
cluster.close();
} catch (Exception e) {
e.printStackTrace();
}
...全文
4469 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Unicode Escapes 2019-07-17
  • 打赏
  • 举报
回复
redis有没有设置密码呢

8,028

社区成员

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

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