使用Spring Data Redis连接多个Redis服务器

3
我正在开发一个(Spring)应用程序,需要满足以下要求:
  • 从Redis Server1读取数据
  • 从Redis Server2读取数据
  • 从Redis Server3读取数据

并且

  • 将信息保存到MySQL中。

有没有人能给我们想一个方法来使用Spring Data Redis连接到不同的Redis服务器。

找到了一个链接: http://forum.spring.io/forum/spring-projects/data/nosql/104599-how-to-connect-to-multiple-redis-instances-using-redistemplate?view=stream

但那太老了。

非常感谢您的帮助。


@Shahbaz Ahmad @mp911de 我需要像你们一样的结构,但我不知道如何将相关的Redis端点设置到RedisTemplate中。如果您已经实现了它,能否分享您的实现? - Samet Baskıcı
我们从Spring中移出来,创建了一个非常类似于mp911de答案的库。该库是基于核心Java开发的,并存储每个Redis实例的连接。这些实例都有静态名称。应用程序传递实例名称和要存储/执行的信息/命令。 - Shahbaz Ahmad
1个回答

2

目前没有直接支持同时访问多个服务器的功能,但您可以自己实现。通常,您会使用RedisTemplate与Redis交互。 RedisTemplate使用RedisConnectionFactory获取每个请求的连接。您可以自己实现RedisConnectionFactory并将getConnection()调用分派到配置有您的服务器的连接工厂。 Map<String, RedisConnectionFactory>可以保存多个连接工厂。您可以通过自定义鉴别器(通常是在ThreadLocal级别上设置的内容)进行分派。

Spring Framework为JDBC提供了类似的功能,即AbstractRoutingDataSource。GitHub上的代码应该可以帮助您实现路由RedisConnectionFactory的方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接