指定与 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-redisspring-session 和 Spring Boot 连接到我的 Redis 实例。但是我希望spring-data-redis 不连接到 DB 0(这是默认设置),而是连接到另一个本地数据库(比如 DB 1)。这是我希望存储会话的地方。 spring-data-redis 可以做到这一点吗?

【问题讨论】:

【参考方案1】:

RedisTemplate 使用的ConnectionFactory 提供了用于设置默认数据库的配置选项。根据使用的 Redis 驱动程序,JedisConnectionFactoryLettuceConnectionFactory 提供 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 转换一起工作?

redis集群 与spring-data-redis 集成

spring-data-redis

spring-data-redis ValueOperations

spring-data-redis的序列化反序列化

spring-data-redis 连接泄漏,我 TM 人傻了