Я пытаюсь подключиться к кластеру Redis, который установлен в поле linux, используя java для хранения строки JSON.
Код:
public JedisCluster getRedisCluster(){
Set<HostAndPort> jedisClusterNode = new HashSet<HostAndPort>();
jedisClusterNode.add(new HostAndPort("redis-test-cluster1", 6379));
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxTotal(10);
jedisPoolConfig.setMaxIdle(10);
jedisPoolConfig.setMaxWaitMillis(10000);
jedisPoolConfig.setTestOnBorrow(true);
JedisCluster jedisCluster = new JedisCluster(jedisClusterNode, 10000, 1,10, "passwordString",jedisPoolConfig);
return jedisCluster;
}
public static void main(String[] args) {
String jsonString = new String("{\"Test1\": \"data1\", \"Test2\": 42}");
Map<String,String> map = new HashMap<String,String>();
map.put("testjson",jsonString);
JedisCluster jedisCluster = new RedisJavaClient().getRedisCluster();
jedisCluster.hmset("idtest",map);
String value = jedisCluster.hget("testjson","idtest");
System.out.println("value passed : "+value);
}
И я получаю следующее исключение:
Исключение в потоке "main" redis.clients.jedis.exceptions.JedisNoReachableClusterNodeException: Нет достижимого узла в кластере по адресу redis.clients.jedis.JedisSlotBasedConnectionHandler.getConnection (JedisSlotBasedConnectionHandler. java: 69) по адресу redis.clients.jedis.JedisSlotBasedConnectionHandler.getConnectionFromSet.jisisedjisClient_Control_Signed.Ru (JedisClusterCommand. java: 102) на redis.clients.jedis.JedisClusterCommand.run (JedisClusterCommand. java: 25) на redis.clients.jedis.JedisCluster.hmset (JedisCluster. java 51): 51 connection.jedisclient.Test.main (Test. java: 25)
Я могу установить его вручную в кластере, как показано ниже:
127.0.0.1: 6379> hmset users jsontest "{\" Test1 \ ": \" data1 \ ", \" Test2 \ ": 42}"
OK
127.0.0.1: 6379> hget users jsontest
"{\" Test1 \ ": \" data1 \ ", \" Test 2 \ ": 42}"