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做缓存,又碰到乱码问题,不妨直接用这个配置试试,改动不大,效果还不错。

java 文件大小:2.03KB