Я хочу использовать Spring Data Redis с моей кластерной настройкой Redis.
Теперь в чистом коде Jedis для подключения к кластеру узлов Redis мы должны сделать так:
Set<HostAndPort> jedisClusterNodes = new HashSet<HostAndPort>();
jedisClusterNodes.add(new HostAndPort("10.7.2.242", 7003));
jedisClusterNodes.add(new HostAndPort("10.7.2.242", 7004));
jedisClusterNodes.add(new HostAndPort("10.7.2.242", 7005));
System.out.println("jcn set initialised");
JedisCluster jc = new JedisCluster(jedisClusterNodes);
jc.set("foo_first", "bar");
String value = jc.get("foo_first");
System.out.println(value);
Это выводит на bar
что является правильным.
Здесь совершенно очевидно, что для того, чтобы использовать кластер Redis через Jedis, мы должны предоставить все Ip и Port главных узлов Redis Cluster.
Теперь, когда мы подошли к Spring, Redis, у нас есть некоторые варианты,
JedisConnection
JedisConnectionFactory
RedisTemplate
но на самом деле ни один из этих классов не дает мне возможность предоставить список Ips с портами, как в приведенном выше примере.
Я что-то пропустил или есть способ обработки кластера Redis в Spring Data, также, насколько я знаю, Sentinel and Cluster (Исправить меня, если я ошибаюсь) различны в их практическом аспекте реализации, поэтому, пожалуйста, не предоставляйте примеры Стражей.
Заранее спасибо, :)
Поддержка кластеров Redis 3.0 не была интегрирована в spring-data-redis. Билет Jira DATAREDIS-315 был создан для отслеживания этого запроса. Похоже, что возможности кластера не были показаны через классы JedisConnection/JedisConnectionFactory, используемые Spring, поэтому может быть какое-то время, прежде чем вы увидите эту функцию.
Весенняя сессия расширила поддержку кластеров redis, начиная с 1.7.1. Пожалуйста, обратитесь к последнему справочному документу.