当前位置: 首页 > 知识库问答 >
问题:

Spring的绝地连接工厂是否支持新的绝地集群?

孙风畔
2023-03-14

我们正在将Redis堆栈迁移到Redis集群。

在我们应用程序的某些部分,这意味着我们必须用JedisCluster对象替换Jedis对象。

在我们的Spring客户端中,我们使用JedisConnectionFactory将会话持久化到redis。但是,此类似乎不支持JedisCluster。

有没有想过如何将Spring应用程序连接到Redis集群?

我注意到这个工厂实现了RedisConnectionFactory,它需要返回RedisConnection的一个实例。然而,这假设只需要一个到Redis服务器的连接,而RedisCluster中则不是这样(它需要一组Redis服务器并为所有这些服务器创建连接)。因此,我不确定为了将Spring引入我们的新堆栈,需要实现哪些接口。

任何帮助将不胜感激。谢谢!

共有2个答案

冯卓
2023-03-14

通过哨兵操作:

>     /**  * jedis  */ @Bean public RedisConnectionFactory jedisConnectionFactory() {   RedisSentinelConfiguration sentinelConfig
> = new RedisSentinelConfiguration() .master("mymaster")   .sentinel("127.0.0.1", 26379) .sentinel("127.0.0.1", 26380);   return
> new JedisConnectionFactory(sentinelConfig); }

http://docs.spring.io/spring-data/redis/docs/current/reference/html/#redis:sentinel

邓开济
2023-03-14

Spring Data Redis 1.7将使用Jedis和莴苣驱动程序支持Redis群集。发布日期:2016年4月1日。

Spring Data Redis群集的代码示例已经在线:https://github.com/spring-projects/spring-data-examples/tree/master/redis/cluster

 类似资料:
  • 如果给定的字符串是绝对URL,则返回 true ;否则返回 false。 使用正则表达式来测试字符串是否是绝对URL。 const isAbsoluteURL = str => /^[a-z][a-z0-9+.-]*:/.test(str); isAbsoluteURL('https://google.com'); // true isAbsoluteURL('ftp://www.myserve

  • 我刚刚在我的个人计算机上安装了DBeaver,并试图创建一个PostgreSQL数据库。 我在连接到数据库窗口中输入了以下内容: 主机:本地主机 端口:5432 数据库:Postgres 用户:Postgres 这些值都是预先填充的默认值,所以我离开了它们,点击了测试连接...按钮。 当我单击测试按钮时,一个错误窗口打开,说:“到本地主机的连接:5432被拒绝。请检查主机名和端口是否正确,以及邮局

  • 我已经设置了Flurl在我的Xamarin PCL中运行,并且我正在调用我在MVC应用程序中运行的Web Api。 似乎 Flurl 可以毫无问题地击中我部署的 API,但由于某种原因我无法在本地测试更改。 我现在做的是: 我也尝试过一个简单的GetAsync(),但再次失败。 任何帮助都将不胜感激。 编辑: 为了了解更多信息,该项目是Ionic移动应用程序的重新开发。我已经在本地运行了ionic

  • 我使用的是jedis版本2.8.0和Spring Data redis版本1.7.5。和redis服务器版本2.8.4。 我有多个缓存得到保存在redis和获取请求是从redis完成的。我正在使用spring data redis API来保存和获取数据。 所有的save和get都可以正常工作,但偶尔geting会低于exception: 我的redis配置类: 有没有人面对过这个问题或者对此有任

  • 我试图从java应用程序连接到我的数据库,但它拒绝连接,给出的错误是这个。 搜索我发现问题不是代码,而是连接到我的本地主机,因为我可以连接到localhost如果我去我的网络浏览器,只是去'localhost',我不能做一个telnet到localhost或127.0.0.1,它拒绝连接。 我已经尝试了在web上找到的所有东西,创建了一个新的“hosts”文件,刷新了dns,重新启动了apache

  • 我正在使用winsock2编程一个服务器/客户机系统,当我将客户机连接到服务器名称或服务器IPv6地址时,它工作得很好。但是,当我使用服务器IPv4地址时,我从客户端中的connect()调用中得到错误“Connection referend”。 我如何也连接到服务器IPv4地址?我需要帮助,拜托。 多谢了。 根据用户Sorayuki给出的一个建议,我做了一些修改,只是为了检验他的理论是否正确。