指定与 spring-data-redis 一起使用的逻辑数据库
Posted
技术标签:
【中文标题】指定与 spring-data-redis 一起使用的逻辑数据库【英文标题】:Specify which logical database to use with spring-data-redis 【发布时间】:2016-05-14 06:28:42 【问题描述】:我正在使用spring-data-redis
、spring-session
和 Spring Boot 连接到我的 Redis 实例。但是我希望spring-data-redis
不连接到 DB 0(这是默认设置),而是连接到另一个本地数据库(比如 DB 1)。这是我希望存储会话的地方。 spring-data-redis 可以做到这一点吗?
【问题讨论】:
【参考方案1】:RedisTemplate
使用的ConnectionFactory
提供了用于设置默认数据库的配置选项。根据使用的 Redis 驱动程序,JedisConnectionFactory
和 LettuceConnectionFactory
提供 void setDatabase(int index)
。
使用 Spring Boot RedisProperties
允许通过 setDatabase
或提供 spring.redis.database
设置默认 DB。
【讨论】:
Christoph Strobl 是否可以在我的 bean 中注入 JedisConnectionFactory 并在运行时更改数据库,因为我需要有两个不同的数据库?? 我不建议这样做,而是在您正在使用的专用连接上使用RedisConnectionCommands
提供的select
方法。
谢谢,我需要在一个应用程序中调用两个不同的数据库。
Christoph Strobl 如何获得“RedisConnectionCommands”?我只能从 connectionFactory.getConnection().select(index) 获得连接,但它需要一个新的连接。
同意,我决定在连接级别上做,我使用 redisTemplate.execute( con -> con.select(dbIndex); // 做事 以上是关于指定与 spring-data-redis 一起使用的逻辑数据库的主要内容,如果未能解决你的问题,请参考以下文章
如何使 URL 重写与 web.Release.config 转换一起工作?