RedisTemplate解决Redis存储乱码问题
Redis 配置类里的自定义RedisTemplate
,用来序列化格式不一致导致的乱码问题,挺实用的。尤其你在项目里用到了Redis
缓存数据,反序列化出来看到一堆乱码,真的头大。这个模板统一了序列化方式,读写都清爽。
JDK 的序列化虽然是 Java 自带的,但生成的是二进制,肉眼看不了,调试不方便,还容易踩坑。RedisTemplate里把 key 和 value 的序列化方式都自定义了,比如 key 用StringRedisSerializer
,value 可以换成Jackson2JsonRedisSerializer
,这样存进去的数据就直接是 JSON 格式,清晰多了。
配置代码也蛮,主要在配置类里新建一个RedisTemplate
,设置对应的Serializer
。像这样:
@Bean
public RedisTemplate redisTemplate(RedisConnectionFactory factory) {
RedisTemplate template = new RedisTemplate<>();
template.setConnectionFactory(factory);
// 设置 key 序列化方式
template.setKeySerializer(new StringRedisSerializer());
// 设置 value 序列化方式
template.setValueSerializer(new Jackson2JsonRedisSerializer<>(Object.class));
return template;
}
哦对了,如果你对序列化这块还不太熟,可以看看这篇相关文章:JDK 序列化 API 类框图-Java 对象的序列化与反序列化,挺直观的。
如果你用Redis
做缓存,又碰到乱码问题,不妨直接用这个配置试试,改动不大,效果还不错。
2.03KB
文件大小:
评论区