Spring Data Redis集群支持

时间:2015-04-13 10:02:27

标签: java spring redis spring-data jedis

我想在我的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和端口。

现在来到Spring支持的Redis时,我们有一些选项,比如

JedisConnection
JedisConnectionFactory
RedisTemplate

但实际上这些类中没有一个让我有机会给出带有端口的Ips列表,如上面的示例所示。

我是否遗漏了某些东西,或者有没有办法在Spring Data中处理Redis集群,据我所知,Sentinel和Cluster(纠正我,如果我错了)在实际实现方面有所不同,所以请不要#39; t提供了Sentinels的例子。

提前致谢:)

2 个答案:

答案 0 :(得分:5)

尚未将对Redis 3.0集群的支持集成到spring-data-redis中。创建了Jira票证DATAREDIS-315以跟踪此请求。看起来集群功能没有通过Spring使用的JedisConnection / JedisConnectionFactory类公开,因此在您看到此功能完成之前可能需要一段时间。

答案 1 :(得分:5)

Spring会话已经扩展了对现在从1.7.1开始的redis集群的支持。请参考最新的reference document

相关问题