java 带密码连接redis 单节点/集群 No reachable node in cluster报错解决

java 带密码连接redis 单节点/集群 No reachable node in cluster报错解决

maven依赖

<dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>3.2.0</version>
        </dependency>

连接单节点时

JedisShardInfo shardInfo=new JedisShardInfo("redis://xxx:xxx");
shardInfo.setPassword("xxx");
jedis.set(xxx, xxx);

连接集群时

JedisCluster cluster ;
JedisPoolConfig poolConfig = new JedisPoolConfig();
// 最大连接数
poolConfig.setMaxTotal(10000);
// 最大空闲数
poolConfig.setMaxIdle(1000);
poolConfig.setMaxWaitMillis(3000);
poolConfig.setTestOnBorrow(true);
Set<HostAndPort> nodes = new LinkedHashSet<HostAndPort>();
nodes.add(new HostAndPort("xxx",xxx));
//TODO 依次加上集群的所有节点
//下面这行xxx为密码
cluster = new JedisCluster( nodes, 3000, 3000, 8, "xxx", poolConfig );
cluster.set(xxx, xxx);

当时连接集群时报了这个错
No reachable node in cluster
看网上很多解决方案要修改集群配置什么的,但是没有效果
后来发现集群的每个主机网卡分为内网和外网
客户端主机对集群所有节点内网的端口都通,但是不通外网
但是redis集群设置nodes时是用外网ip设置的
所以将客户端主机与redis集群所有外网ip都打通就可以了
这个真的巨坑,排查了好久
想知道redis集群设置nodes的信息,可以进redis命令行使用下面命令看

cluster nodes
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MIDSUMMER_yy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值