【发布时间】:2015-06-18 14:32:39
【问题描述】:
我想在我的 Redis 集群设置中使用 Spring Data 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,这是正确的。
这里很清楚,要通过 Jedis 使用 Redis 集群,我们必须提供 Redis 集群主节点的所有 Ip 和 Port。
现在,当使用 Spring 支持的 Redis 时,我们有一些选择,例如,
JedisConnection
JedisConnectionFactory
RedisTemplate
但实际上,这些类都没有让我有机会像上面我们给出的示例一样给出带有端口的 Ips 列表。
我是否遗漏了什么或者有没有办法在Spring Data中处理Redis集群,据我所知,Sentinel和Cluster(如果我错了,请纠正我)在它们的实际实现方面是不同的,所以请不要'不提供哨兵的例子。
提前致谢,:)
【问题讨论】:
标签: java spring redis spring-data jedis