Я хочу использовать 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-адреса и порты главных узлов Redis Cluster.
Теперь, когда мы подходим к Redis с поддержкой Spring, у нас есть некоторые варианты, например:
JedisConnection
JedisConnectionFactory
RedisTemplate
но на самом деле ни один из этих классов не дает мне возможности дать список IP-адресов с портами, как в приведенном выше примере.
Я что-то пропустил или есть способ обработки кластера Redis в Spring Data, также, насколько мне известно, Sentinel и Cluster (поправьте меня, если я ошибаюсь) отличаются в аспекте практической реализации, поэтому, пожалуйста, не предоставляйте примеры Стражей.
Заранее спасибо, :)