spring boot RedisTemplate LocalDateTime序列化
时间: 2024-01-18 20:18:05 浏览: 100
在Spring Boot中,可以使用RedisTemplate来操作Redis数据库。当需要将LocalDateTime类型的数据存储到Redis中时,需要对其进行序列化和反序列化处理。
首先,需要配置RedisTemplate的序列化方式为Jackson2JsonRedisSerializer。在配置类中添加以下代码:
```java
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory);
// 设置key的序列化方式为StringRedisSerializer
template.setKeySerializer(new StringRedisSerializer());
// 设置value的序列化方式为Jackson2JsonRedisSerializer
template.setValueSerializer(new Jackson2JsonRedisSerializer<>(LocalDateTime.class));
return template;
}
}
```
然后,在需要使用RedisTemplate的地方,可以直接注入RedisTemplate,并使用其提供的方法进行操作。例如,将LocalDateTime类型的数据存储到Redis中:
```java
@Autowired
private RedisTemplate<String, Object> redisTemplate;
public void saveLocalDateTime(String key, LocalDateTime value) {
redisTemplate.opsForValue().set(key, value);
}
```
同样地,可以使用RedisTemplate获取存储在Redis中的LocalDateTime类型的数据:
```java
public LocalDateTime getLocalDateTime(String key) {
return (LocalDateTime) redisTemplate.opsForValue().get(key);
}
```
需要注意的是,由于RedisTemplate默认使用JdkSerializationRedisSerializer进行序列化,所以需要自定义序列化方式为Jackson2JsonRedisSerializer,并指定序列化的类型为LocalDateTime。
阅读全文