动态创建RedisTemplate以连接不同的Redis服务器

时间:2016-12-21 10:44:42

标签: redis spring-data spring-data-redis

我的应用程序基于Spring引导构建,并由Redis数据存储区支持。目前我只连接到一个redis服务器,并且该服务器(主机/端口)的属性在bootstrap.yml中定义。

我想通过为每个客户使用单独的Redis服务器来支持多租户。为了做到这一点,我需要在运行时动态连接各种不同的redis服务器。是否可以使用RedisTemplate和JedisConnecitonFactory?

1 个答案:

答案 0 :(得分:0)

简而言之

不需要多个RedisTemplate个实例;实施路由RedisConnectionFactory

解释

RedisTemplate使用基础RedisConnectionFactory来获取连接。要将Redis操作路由到不同的连接,只需实现RedisConnectionFactory的路由变体。 RedisTemplate要求每个操作的关联RedisConnectionFactory提供RedisConnection

使用交易时需要注意。事务性使用将Redis连接绑定到调用线程,RedisTemplate在同一连接上有效工作,直到事务完成。

查看AbstractRoutingDataSource以了解JDBC连接如何支持数据源路由。路由RedisConnectionFactory可以遵循相同的模式。