返回顶部
首页 > 资讯 > 精选 >Redis序列化转换类型报错如何解决
  • 854
分享到

Redis序列化转换类型报错如何解决

2023-07-06 03:07:09 854人浏览 安东尼
摘要

本文小编为大家详细介绍“Redis序列化转换类型报错如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“Redis序列化转换类型报错如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Cannot conv

本文小编为大家详细介绍“Redis序列化转换类型报错如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“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序列化转换类型报错如何解决”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: Redis序列化转换类型报错如何解决

本文链接: https://lsjlt.com/news/357494.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作