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

被折叠的 条评论
为什么被折叠?



