Я пытаюсь подключиться к кластеру redis, используя java JedisCluster клиент.
Сначала я создал Redis Cluster, используя этот образ докера
grokzen / redis-cluster
Создано 6 узлов (3 master && 3 slave)
Использование докер-машины в Windows Я запустил redis cluster с помощью этой команды
docker run -p 7000:7000 -p 7001:7001 -p 7002:7002 -p 7003:7003 -p 7004:7004 -p 7005:7005 -p 7006:7006 -p 7007:7007 dockerImageId
Redis Cluster, начиная с короткого пути Журнал:
Использование 3 мастеров:
172.17.0.2: 7000
172.17.0.2: 7001
172.17.0.2: 7002
Добавление реплики 172.17.0.2:7004 к 172.17.0.2:7000 Добавление реплики 172.17.0.2:7005
к 172.17.0.2:7001 Добавлениереплика
172.17.0.2: от 7003 до 172.17.0.2:7002
Клиент Java для кластера Redis:
Set<HostAndPort> jedisClusterNodes = new HashSet<HostAndPort>();
jedisClusterNodes.add(new HostAndPort("192.168.99.100", 7000));
JedisCluster jc = new JedisCluster(jedisClusterNodes);
jc.set("key", "Redis-Val");
String value = jc.get("key");
System.out.println("key is : "+value);
После выполнения этого кода я получил это исключение
Исключение в потоке "main" redis.clients.jedis.exceptions.JedisConnectionException: Не удалось получить ресурс fиз пула по адресу redis.clients.util.Pool.getResource (Pool.java:53) по адресу redis.clients.jedis.JedisPool.getResource (JedisPool.java:226) по адресу redis.clients.jedis.JedisSlotBasedConlotHedConФракция по связямjava: 66) в redis.clients.jedis.JedisClusterCommand.runWithRetries (JedisClusterCommand.java:116) в redis.clients.jedis.JedisClusterCommand.runWithRetries (JedisClusterCommand.jithisCluster.JedisCj.java: 141) по адресу redis.clients.jedis.JedisClusterCommand.runWithRetries (JedisClusterCommand.java:141) по адресу redis.clients.jedis.JedisClusterCommand.runWithRetries (JedisClusterCommand.jisisisisCluster.jedisisJedisClusterCommand.java:31) в redis.clients.jedis.JedisCluster.set (JedisCluster.java:103) в redis.redis_example.App.main (App.java:20) Вызывается: redis.clients.jedis.exceptions.JedisConneception.JedisConneception: java.net.SocketTimeoutException: истекло время ожидания соединения
Я проверил, что redis работает на любом узле кластера с помощью команды telnet:
telnet 192.168.99.100 7000
успешно подключен