服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Redis - Redis序列化转换类型报错的解决

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

2023-04-14 16:14soulh88 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()方法,但是报错,

?
1
2
3
4
5
6
7
8
9
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());

改成如下即可解决:

?
1
2
3
4
5
6
7
8
9
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序列化转换类型内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/soulh88/article/details/129128260

延伸 · 阅读

精彩推荐
  • RedisRedis中过期键如何删除示例详解

    Redis中过期键如何删除示例详解

    因为redis数据是基于内存的,然而内存是非常宝贵的资源,然后我们就会对一些不常用或者只用一次的数据进行存活时间设置,这样才能提高内存的使用效率,下...

    LiZ'blog9042022-10-14
  • RedisRedis实现优惠券限一单限制详解

    Redis实现优惠券限一单限制详解

    这篇文章主要介绍了Redis解决优惠券秒杀应用案例,本文先讲了抢购问题,指出其中会出现的多线程问题,提出解决方案采用悲观锁和乐观锁两种方式进行实...

    芝麻干7902022-12-07
  • Redisredis通过pipeline提升吞吐量的方法

    redis通过pipeline提升吞吐量的方法

    下面小编就为大家分享一篇redis通过pipeline提升吞吐量的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 ...

    zale.tang4622019-11-11
  • Redis高并发技巧之Redis和本地缓存使用技巧分享

    高并发技巧之Redis和本地缓存使用技巧分享

    在这篇文章中,我主要介绍的是分布式缓存和本地缓存的使用技巧,包括缓存种类介绍,各种的使用场景,以及如何使用,最后再给出实战案例,需要的可...

    可以回家加班吗6842022-11-28
  • Redisjedis配置含义详解

    jedis配置含义详解

    这篇文章主要介绍了jedis配置含义详解的相关资料,需要的朋友可以参考下...

    Gotcha_4942020-07-05
  • RedisRedis Scan命令的基本使用方法

    Redis Scan命令的基本使用方法

    这篇文章主要给大家介绍了关于Redis中Scan命令的基本使用方法,文中通过示例代码介绍的非常详细,对大家学习或者使用Redis具有一定的参考学习价值,需...

    smartsi3022020-03-01
  • RedisRedis序列化转换类型报错的解决

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

    本文主要介绍了Redis序列化转换类型报错的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面...

    soulh884642023-04-14
  • Redis微服务Spring Boot 整合 Redis 实现好友关注功能

    微服务Spring Boot 整合 Redis 实现好友关注功能

    这篇文章主要介绍了微服务Spring Boot 整合 Redis 实现 好友关注,本文结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需...

    Bug 终结者11772022-12-15