七叶笔记 » java编程 » 解决SpringBoot下Redis序列化乱码的问题

解决SpringBoot下Redis序列化乱码的问题

SpringBoot下Redis序列化乱码

项目最初的序列化方案用的是JDK序列化类,但保存到redis里会产生乱码不方便查看管理。

经过上网查看是由于序列化类的问题,我们不用jdk的序列化方法,采用json的格式

注意问题

采用上述序列化器时需保证实体类里的所有get方法都有属性字段,否则反序列话时会出现问题,若没有需要加@JsonIgnore注解,序列化时会进行忽略。

SpringBoot配置Redis序列化规则,防止乱码

SpringBoot引入Redis很简单,添加以下注解:

然后在application.yml中添加Redis配置:

注:此处有一些额外的配置,比如password等,我这里为省事就不写了。

下面我们可以编写测试类了

测试后发现一个问题,test:1这样的key,乱码了。比如我用

Another.Redis.Desktop.Manager工具去查看时,发现变成了一串奇奇怪怪的字符串。

乱码了。

这是因为Redis默认序列化规则导致的。RedisTemplate默认的所有序列化规则都是JDKSerializer,而StringRedisTemplate默认的序列化规则是StringRedisSerializer。

具体可以看下图

我们需要对它进行配置

注:此处仅重新设置了Key和Value的序列化规则,hash-key和hash-value的序列化规则可以参考进行设置。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持七叶笔记。

相关文章