七叶笔记 » java编程 » SpringBoot结合Redis实现序列化的方法详解

SpringBoot结合Redis实现序列化的方法详解

前言

最近在学习Spring Boot结合Redis时看了一些网上的教程,发现这些教程要么比较老,要么不知道从哪抄得,运行起来有问题。这里分享一下我最新学到的写法

默认情况下,Spring 为我们提供了一个 RedisTemplate 来进行对 Redis 的操作,但是 RedisTemplate 默认配置的是使用Java本机序列化。

这种序列化方式,对于操作字符串或数字来说,用起来还行,但是如果要对对象操作,就不是那么的方便了。

所以我们需要配置合适的序列化方式。在 Spring 官方的文档中,官方也建议了我们使用其他的方式来进行序列化。比如JSON

https://docs.spring.io/spring-data/redis/docs/2.2.5.RELEASE/reference/html/#redis:serializer

配置类

配置 Jackson2JsonRedisSerializer 序列化策略

下面就开始自动配置类的书写

我使用的是 Jackson2JsonRedisSerializer 来对对象进行序列化,所以首先需要一个方法,来配置 Jackson2JsonRedisSerializer 序列化策略

这里要注意的是

这一句,这一句非常的重要,作用是序列化时将对象全类名一起保存下来

设置之后的序列化结果如下:

[    "com.buguagaoshu.redis.model.User",    {        "name": "1",        "age": "11",        "message": "牛逼"    }]

不设置的话,序列化结果如下,将无法反序列化

{        "name": "1",        "age": "11",        "message": "牛逼"    }

一开始,我在网上搜了一下,发现大多数教程因为时间的原因,这一句用的是

但当我把这段代码写入的时候,发现Idea提示我

着是一个过时的方法,由于我当时并不知道这句话的意思,就把这段代码注释了,觉得可能没什么用,但注释后在向Redis里写数据的时候,数据会变成

导致数据无法反序列化。

最后我查看了这个方法的源码,找到了

通过注释,我得到了这段代码的最新写法。

也明白了这段代码的作用。

配置  RedisTemplate

这里就没有什么需要注意的了,按照自己的需求,来配置序列化的方式

配置缓存策略

测试代码

再来查看Redis中的数据

数据正常,并且系统也能正常的反序列化了。

完整代码

以上就是SpringBoot结合Redis实现序列化的方法详解的详细内容,更多关于SpringBoot Redis序列化的资料请关注七叶笔记其它相关文章!

相关文章