RedisTemplate配置序列和反序列化 对于redis操作,springboot进行了很好的封装,那就是spring data redis。提供了一个高度封装的RedisTemplate类来进行一系列redis操作,连接池自动管理;同时将事务
RedisTemplate配置序列和反序列化对于redis操作,springboot进行了很好的封装,那就是spring data redis。提供了一个高度封装的RedisTemplate类来进行一系列redis操作,连接池自动管理;同时将事务封装操作,交由容器进行处理。 针对数据的“序列化和反序列化”,提供了多种策略(RedisSerializer) 默认为使用JdkSerializationRedisSerializer,同时还有StringRedisSerializer,JacksonJsonRedisSerializer,OxmSerializer,GenericFastJsonRedisSerializer。 简介一下
实践1)依赖(版本继承了SpringBoot版本)
2)RedisConfig类 添加bean,指定key/value以及HashKey和HashValue的序列化和反序列化为FastJson的。
RedisTemplate序列化问题序列化与反序列化规则不一致,导致报错1、配置redisTemplate
2、存值 此次存值,使用redisTemplate的回调函数,是按照字符串序列化方式存redisValue
redis客户端:value是字符串 3、取值 此次取值,返回结果默认是按照 1、配置redisTemplate中配置的JdkSerializationRedisSerializer序列化方式,由于存和取的序列化方式不统一,会产生报错情况。
报错详情:反序列化失败
解决办法1、取值 需要在redisTemplate.executePipelined入参中再加一个参数:redisTemplate.getStringSerializer(),取值成功,解决问题!!
总结1、使用原生redisTemplate操作数据和redisTemplate回调函数操作数据注意点: a.原生redisTemplate操作数据 代码
redis客户端数据展示 b.redisTemplate回调函数操作数据 代码
redis客户端数据展示 c.不同点: 原生redisTemplate操作数据序列化方式是和redis配置统一的,redisTemplate回调函数操作数据序列化方式是自定义的。存值取值是需要注意。 |
2021-04-08
2021-10-03
2021-07-26
2019-10-11
2022-08-27