В соединении отказано для джедаев с кластером Redis

Я пытаюсь подключиться к своему кластеру Redis (на удаленном сервере) с помощью jedis (на моем локальном компьютере, подключенном к той же сети).

Мой кластер Redis состоит из следующих IP-адресов:

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

Может кто-нибудь сказать мне, что я здесь делаю не так ??? Заранее спасибо.

Моя программа джедаев:

        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"));

person Marek    schedule 21.07.2017    source источник


Ответы (1)


Ой. С моей стороны это была глупая ошибка.

Удалите IP-адрес машины и 127.0.0.1 из тега bind в redis.conf и укажите правильный IP-адрес хоста (например, 10.x.x.x в моем случае).

Также поместите protected-mode в no в redis.conf

Также при создании кластера с использованием ./redis-trib.rb IP-адреса хоста следует указывать в правильном формате (10.x.x.x) и не указывать localhost (т.е. не 127.0.0.1), даже если все экземпляры Redis работают на одном сервере.

person Marek    schedule 21.07.2017