Redis配置序列化器
2025年6月7日小于 1 分钟
Redis配置序列化器
- Redis配置了序列化器以后,由序列化器自动完成数据的转换。
- 存储数据可以直接存储对象不用先转为字符串再存储,取数据也不用手动再指定取出的字符串数据转为什么对象类型
配置序列化器后
1.存储数据
List<Picture> pictureList = getPictureList(); //list集合对象数据
redisTemplate.opsForValue().set(key, pictureList, 5, TimeUnit.MINUTES);
2.取出数据
List<Picture> pictureList = (List<Picture>) redisTemplate.opsForValue().get(key);
配置序列化器前
1.存数据
List<Picture> pictureList = getPictureList(); //list集合对象数据
String jsonStr = JSONUtil.toJsonStr(pictureList);
redisTemplate.opsForValue().set(key, jsonStr);
2.取数据
String jsonStr = (String) redisTemplate.opsForValue().get(key);
List<Picture> pictureList = JSONUtil.toList(jsonStr, Picture.class);
代码配置
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory);
// 配置 RedisTemplate 使用 StringRedisSerializer 来序列化键
template.setKeySerializer(new StringRedisSerializer());
// 配置 RedisTemplate 使用 Jackson2JsonRedisSerializer 来序列化值(对象)
Jackson2JsonRedisSerializer<Object> jacksonSerializer = new Jackson2JsonRedisSerializer<>(Object.class);
template.setValueSerializer(jacksonSerializer);
return template;
}
}