我正在尝试使用jedis连接到我的redis群集(在远程服务器上)(在连接到同一网络的本地计算机上)。
我的redis群集是通过以下ips形成的:
10.x.x.x:6380
10.x.x.x:6382
10.x.x.x:6385
我的redis实例10.x.x.x:6380的配置文件是:
port 6380
cluster-enabled yes
cluster-config-file nodes-6380.conf
cluster-node-timeout 5000
appendonly yes
protected-mode yes
#daemonize yes
bind 127.0.0.1 10.x.x.x(machine ip)
但问题是,当我尝试运行我的redis服务器实例时,我遇到以下异常:
[admin@dn2 6380]$ redis-server redis.conf
10965:M 21 Jul 02:58:04.100 # Creating Server TCP listening socket (local machine ip):6380: bind: Cannot assign requested address
有人可以告诉我这里我做错了吗???提前谢谢。
我的jedis计划是:
Set<HostAndPort> jedisClusterNodes = new HashSet<HostAndPort>();
//Jedis Cluster will attempt to discover cluster nodes automatically
jedisClusterNodes.add(new HostAndPort("10.x.x.x", 6380));
jedisClusterNodes.add(new HostAndPort("10.x.x.x", 6382));
jedisClusterNodes.add(new HostAndPort("10.x.x.x", 6385));
JedisCluster jc = new JedisCluster(jedisClusterNodes);
jc.set("foo", "bar");
String value;
System.out.println(value = jc.get("foo"));
答案 0 :(得分:0)
糟糕。我的结局是一个愚蠢的错误。
从redis.conf中的bind
标记中删除机器ip和127.0.0.1,并指定正确的主机IP(即,在我的情况下为10.x.x.x)。
还将protected-mode
放入redis.conf中的no
同样在使用./redis-trib.rb
创建集群时,应该以正确的格式(10.xxx)提及主机ips,并且即使所有redis实例都在同一个上运行,也不要放入localhost(即,不是127.0.0.1)服务器