连接被拒绝jedis与redis集群

时间:2017-07-21 07:13:23

标签: jedis redis-cluster

我正在尝试使用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"));

1 个答案:

答案 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)服务器