【问题标题】:Spring Data Redis with cluster support具有集群支持的 Spring Data Redis
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 你指的是 Spring Data 吗?
      猜你喜欢
      • 1970-01-01
      • 2016-06-29
      • 1970-01-01
      • 1970-01-01
      • 2015-08-17
      • 2018-06-20
      • 2017-05-06
      • 2015-08-26
      • 2016-07-05
      相关资源
      最近更新 更多