我的应用程序基于Spring引导构建,并由Redis数据存储区支持。目前我只连接到一个redis服务器,并且该服务器(主机/端口)的属性在bootstrap.yml中定义。
我想通过为每个客户使用单独的Redis服务器来支持多租户。为了做到这一点,我需要在运行时动态连接各种不同的redis服务器。是否可以使用RedisTemplate和JedisConnecitonFactory?
答案 0 :(得分:0)
不需要多个RedisTemplate
个实例;实施路由RedisConnectionFactory
。
RedisTemplate
使用基础RedisConnectionFactory
来获取连接。要将Redis操作路由到不同的连接,只需实现RedisConnectionFactory
的路由变体。 RedisTemplate
要求每个操作的关联RedisConnectionFactory
提供RedisConnection
。
使用交易时需要注意。事务性使用将Redis连接绑定到调用线程,RedisTemplate
在同一连接上有效工作,直到事务完成。
查看AbstractRoutingDataSource以了解JDBC连接如何支持数据源路由。路由RedisConnectionFactory
可以遵循相同的模式。