@Configuration配置类配置Redis连接
时间: 2025-03-31 17:06:22 浏览: 26
### 创建一个用于配置 Redis 连接的 Spring Boot 配置类
在 Spring Boot 应用程序中,可以通过 `@Configuration` 注解定义一个配置类来管理 Redis 的连接设置。以下是完整的实现方法:
#### 1. 定义配置类
使用 `@Configuration` 注解标记该类为配置类,并通过 `@Bean` 注解注册所需的 Bean。
```java
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
@Configuration
public class RedisConfig {
@Bean
public RedisConnectionFactory redisConnectionFactory() {
return new LettuceConnectionFactory(); // 使用Lettuce作为Redis客户端驱动
}
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setKeySerializer(new StringRedisSerializer()); // 设置key的序列化方式
template.setValueSerializer(new GenericJackson2JsonRedisSerializer()); // 设置value的序列化方式
template.setHashKeySerializer(new StringRedisSerializer());
template.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
template.setConnectionFactory(factory);
return template;
}
}
```
此代码片段展示了如何创建一个名为 `RedisConfig` 的配置类[^4]。其中包含了两个主要组件:`redisConnectionFactory` 和 `redisTemplate`。
#### 2. application.properties 或 application.yml 文件中的 Redis 配置
为了使上述配置生效,还需要在项目的 `application.properties` 或 `application.yml` 文件中指定 Redis 的相关参数。
##### **application.properties**
```properties
spring.redis.host=localhost
spring.redis.port=6379
spring.redis.password=your-password
spring.redis.timeout=6000ms
```
##### **application.yml**
```yaml
spring:
redis:
host: localhost
port: 6379
password: your-password
timeout: 6000ms
```
这些属性指定了 Redis 服务器的位置、端口以及可选的身份验证信息和超时时间[^3]。
#### 3. 处理高级场景(如主从模式)
如果需要支持 Redis 主从模式,则需自定义 `LettuceConnectionFactory` 并提供额外的配置选项。例如:
```java
@Bean
public RedisConnectionFactory redisConnectionFactory() {
RedisSentinelConfiguration sentinelConfig = new RedisSentinelConfiguration()
.master("my-master") // 指定主节点名称
.sentinels(
Arrays.asList(
new RedisNode("127.0.0.1", 26379),
new RedisNode("127.0.0.1", 26380),
new RedisNode("127.0.0.1", 26381)
)
);
return new LettuceConnectionFactory(sentinelConfig);
}
```
这段代码实现了对 Redis 哨兵模式的支持,允许应用程序动态切换到备用主节点[^2]。
---
### 总结
以上内容涵盖了如何通过 `@Configuration` 注解创建一个用于配置 Redis 连接的 Spring Boot 配置类。它包括了基本的连接工厂和模板对象的初始化过程,同时也提供了针对复杂场景(如主从模式)的解决方案。
阅读全文
相关推荐


















