本文主要介绍了Redis序列化转换类型报错的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
Cannot convert value of type 'org.springframework.data.redis.core.convert.MappingRedisConverter' to required type 'org.springframework.data.redis.core.mapping.RedisMappingContext': no matching editors or conversion strategy found
在setValue的序列化方式的时候报错,原来是用的RedisSerializer.json()方法,但是报错,
template.setConnectionFactory(factory);
// key序列化方式
template.setKeySerializer(RedisSerializer.string());
// value序列化方式
template.setValueSerializer(RedisSerializer.json());
// hash key的序列化方式
template.setHashKeySerializer(RedisSerializer.string());
// hash value的序列化方式
template.setHashValueSerializer(RedisSerializer.json());
改成如下即可解决:
template.setConnectionFactory(factory);
// key序列化方式
template.setKeySerializer(RedisSerializer.string());
// value序列化方式
template.setValueSerializer(new Jackson2JsonRedisSerializer<>(Object.class));
// hash key的序列化方式
template.setHashKeySerializer(RedisSerializer.string());
// hash value的序列化方式
template.setHashValueSerializer(new Jackson2JsonRedisSerializer<>(Object.class));
在Redis中,有多种序列化实现可供选择。其中,Jackson2JsonRedisSerializer和RedisSerializer.json()都是Redis中的序列化实现。它们的区别如下:
Jackson2JsonRedisSerializer使用Jackson库将Java对象序列化为JSON格式的字符串,并将其存储到Redis中。它还可以将从Redis中读取的JSON字符串反序列化为Java对象。因此,使用Jackson2JsonRedisSerializer可以方便地处理JSON格式的数据,并且对于复杂的Java对象可以进行较好的序列化和反序列化。但是,它可能会在序列化过程中忽略一些Java对象中的字段,因此需要进行一些配置才能完全控制序列化过程。
RedisSerializer.json()使用Redis的内置JSON序列化器,将Java对象序列化为JSON格式的字符串,并将其存储到Redis中。它也可以将从Redis中读取的JSON字符串反序列化为Java对象。与Jackson2JsonRedisSerializer相比,RedisSerializer.json()在序列化过程中会将所有Java对象中的字段都序列化到Redis中,但在处理复杂Java对象时,可能需要进行一些额外的配置。
因此,选择哪种序列化方式取决于使用场景和具体需求。如果需要处理复杂的Java对象,并且对序列化和反序列化的精细控制比较关键,那么Jackson2JsonRedisSerializer是一个更好的选择。而如果处理的数据较为简单,或者只需要简单地将Java对象转换为JSON格式的字符串进行存储,那么RedisSerializer.json()可能更适合。
到此这篇关于Redis序列化转换类型报错的解决的文章就介绍到这了,更多相关Redis序列化转换类型内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!
本文标题为:Redis序列化转换类型报错的解决


基础教程推荐
- Java程序员从笨鸟到菜鸟(五十三) 分布式之 Redis 2023-09-11
- Python安装第三方库的方法(pip/conda、easy_install、setup.py) 2023-07-28
- Windows10系统中Oracle完全卸载正确步骤 2023-07-24
- redis乐观锁与悲观锁的实战 2023-07-13
- Mariadb数据库主从复制同步配置过程实例 2023-07-25
- SQL Server如何设置用户只能访问特定数据库和访问特定表或视图 2023-07-29
- Python常见库matplotlib学习笔记之画图中各个模块的含义及修改方法 2023-07-27
- redis 数据库 2023-09-13
- oracle19c卸载教程的超详细教程 2023-07-23
- oracle数据库排序后如何获取第一条数据 2023-07-24