springboot里加入redis
时间: 2024-12-31 15:36:53 浏览: 11
### 配置 Spring Boot 项目中的 Redis 支持
#### 添加依赖项
为了使 Spring Boot 应用程序能够连接并操作 Redis 数据库,需在 `pom.xml` 文件中引入相应的 Starter 依赖。通常情况下会使用官方提供的 spring-boot-starter-data-redis 来简化集成过程[^1]。
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
```
#### 进行基础设置
接着应该修改 application.properties 或者 application.yml 文件来指定 Redis 的服务器地址和其他必要的参数。对于简单的单机版 Redis 实例来说,只需要提供 host 和 port 即可;而对于更复杂的场景比如集群或者主从复制,则可能还需要额外的信息[^3]。
##### 使用 properties 格式:
```properties
spring.redis.host=localhost
spring.redis.port=6379
```
##### 使用 yml 格式:
```yaml
spring:
redis:
host: localhost
port: 6379
```
如果要启用密码验证或者其他高级特性的话,可以在上述基础上继续添加对应的属性配置。
#### 创建 RedisTemplate Bean (针对主从模式)
由于默认情况下 Spring Boot 不支持 Redis 主从架构下的自动装配,因此当涉及到此类部署时,就需要通过自定义的方式去初始化 LettuceConnectionFactory 并将其注入到 RedisTemplate 中作为模板对象用于后续的数据交互逻辑开发[^2]。
```java
@Configuration
public class RedisConfig {
@Bean
public RedisConnectionFactory redisConnectionFactory() {
RedisStandaloneConfiguration config = new RedisStandaloneConfiguration();
config.setHostName("localhost");
config.setPort(6379);
// 如果有主从配置, 则可以在这里进行相应调整
return new LettuceConnectionFactory(config);
}
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(factory);
Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class);
ObjectMapper om = new ObjectMapper();
om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
jackson2JsonRedisSerializer.setObjectMapper(om);
StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
template.setValueSerializer(jackson2JsonRedisSerializer);
template.setKeySerializer(stringRedisSerializer);
template.afterPropertiesSet();
return template;
}
}
```
以上代码片段展示了如何基于 Java Config 方式创建一个适用于 JSON 序列化的 RedisTemplate bean,并指定了字符串类型的 key serializer 及 JSON 类型 value serializer。
阅读全文