RedisTemplate可以接收任意Object作为值写入Redis,只不过写入前会把Object序列化为字节形式,默认是采用JDK序列化,存入redis得到的结果是这样的:
所以就得自定义序列化的方式:
让key值采用string类型存储,所以用String序列化器,value值采用object类型存储,采用json序列化器,方式如下:
此时存入redis数据库
结果:
尽管JSON的序列化方式可以满足我们的需求,但依然存在一些问题:
"@class": "com.example.redis.Pojo.User",过长会带来额外的内存开销。
为了节省内存空间,我们并不会使用JSON序列化器来处理value,而是统一使用String序列化器,要求只能存储String类型的key和value。当需要存储Java对象时,手动完成对象的序列化和反序列化。
那就需要重新自定义序列化方式,但是
Spring提供了一个StringRedisTemplate类,它的key和value的序列化方式默认就是String方式,就不需要我们自己自定义了。
StringRedisTemplate使用:
结果: