使用Jedis 访问redis集群遇到的两个小问题

在配置并尝试使用Jedis连接Redis集群时遇到了'no reachable node in cluster'和'too many cluster redirections'的错误。问题根源在于Redis配置和创建集群命令中的IP设置。通过在每个节点的redis.conf中添加bind属性,并在创建集群命令中使用真实IP而非127.0.0.1,成功解决了问题。对于Jedis连接Redis集群,务必使用实际网络可达的IP地址。

根据官方文档 配置好了redis集群 使用redis-cli命令简单操作下没有任何问题。
但是使用Jedis链接redis出现如下两个错误;
第一次在自己的电脑虚拟机链接的时候报这个错误。
no reachable node in cluster
第二次使用公司的虚拟机链接出现下面的问题
too many cluster redirections
这是我的java代码:

package com.wangdx.jedis;

import java.util.HashSet;
import java.util.Set;

import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster;

public class Test001 {

    public static void main(String[] args){
        Set<HostAndPort> jedisClusterNodes = new HashSet<HostAndPort>();
        //Jedis Cluster will attempt to discover cluster nodes automatically
        jedisClusterNodes.add(new HostAndPort("192.168.24.93", 8000));
        JedisCluster jc = new JedisCluster(jedisClusterNodes);
        System.out.println(jc.getClusterNodes().size());
        jc.set("foo11", "bar");
        String value = jc.get("foo11");
        System.out.println(value);
    }
}

后来找了半天 终于搞好了。
1。首先把每个节点的redis.conf 都加上bind属性 bind 192.168.24.93(这个可能不是必须的 自己没有深入测试 但是最好配置上吧)
2. 这是官方的文档给出的配置命令 ./redis-trib.rb create –replicas 1 127.0.0.1:7000 127.0.0.1:7001 \
127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
不要照搬 把IP和端口号 使用实际的ip和端口 我就是使用了127.0.0.1 才导致了各种问题 。请改成
./redis-trib.rb create –replicas 1 192.168.24.93:7000 192.168.24.93:7001
192.168.24.93:7002 192.168.24.93:7003 192.168.24.93:7004 192.168.24.93:7005

PS:如果只是使用redis-cli学习测试的话 使用127.0.0.1这个ip也是没有关系的 要是使用jedis链接redis的话 一定要使用真实的ip 如我的是192.168.24.93

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值