环境:
1. 在做和客户的一个对接项目中,需要从客户的redis缓存中取一些基础数据,遇到了一些问题,在此记录:
2. 环境:
spring-data-redis(客户:2.0.7,我方:1.8.9)
spring-core:(客户:不知,我方:4.3.8)
心路历程:
1. 查看日志,里面确实有反序列化异常,然后,确认双方的序列化方式和反序列化方式对应关系,确定都是使用的spring-data-redis的默认序列化和反序列化;

org.springframework.data.redis.serializer.SerializationException: Cannot deserialize; nested exception is org.springframework.core.serializer.support.SerializationFailedException: Failed to deserialize payload. Is the byte array a result of corresponding serialization for DefaultDeserializer?; nested exception is java.io.InvalidClassException: org.springframework.util.LinkedCaseInsensitiveMap; local class incompatible: stream classdesc serialVersionUID = 7585587129342584356, local class serialVersionUID = 3417330771149596951
at org.springframework.data.redis.serializer.JdkSerializationRedisSerializer.deserialize(JdkSerializationRedisSerializer.java:82)at org.springframework.data.redis.core.AbstractOperations.deserializeValue(AbstractOperations.java:318)at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:58)
  1. 怀疑是我方项目中的其他组件和spring-data-redis中的依赖有冲突,挨个排查,发现并没有(这里可以使用idea查看pom文件的以来关系来确认)
  2. 后来查一篇博客,发现了一点问题。博客地址:http://976861.blog.163.com/blog/static/10295810020129172026291/
    还有一篇博客,也不错,记录一下:http://cuiweiqing1988.iteye.com/blog/1907955
    再附上一份关于java序列化版本号的说明:https://www.cnblogs.com/guanghuiqq/archive/2012/07/18/2597036.html
  3. 后来怀疑可能是spring-core包版本的问题,索性写了一个spring-boot项目,测试了spring-core:4.3.8和4.3.13以及5.0.6三个版本的,通过测试,4.3.8的获取数据进行反序列化的时候,会抛异常。
  4. so,问题大概知道了,就解决吧。因为之前试过把spring-core以来同意上升到5.0.6,但是其他依赖(Hibernate)会报错。所以,就将版本升到了4.3.13,通过测试,ok。
  5. 总结一下
其实很简单,就是由于双方spring的依赖版本差异引起的,可以尽可能缩小差异(在本身项目允许的情况下)或者干脆两者使用统一版本;

好了,我就是自己记录一下,这个坑了我两天的问题。。。希望能对大家有所帮助!

Spring-data-redis 反序列化异常相关推荐

  1. Spring data redis 异常

    2019独角兽企业重金招聘Python工程师标准>>> spring 集成 spring-data-redis 版本: spring低版本 + spring-data-redis 高 ...

  2. Spring认证中国教育管理中心-Spring Data Redis框架教程三

    原标题:Spring认证中国教育管理中心-Spring Data Redis框架教程三 10.15.支持类 Packageorg.springframework.data.redis.support提 ...

  3. spring mvc Spring Data Redis RedisTemplate [转]

    http://maven.springframework.org/release/org/springframework/data/spring-data-redis/(spring-data包下载) ...

  4. Spring Data Redis 实践

    前言 Spring Data Redis是Spring Data大家族的一部分,提供了基于spring应用的简易配置与redis服务访问,它为存储与交互提供了低级(low-level)和高级的(hig ...

  5. Spring Data Redis 让 NoSQL 快如闪电(2)

    2019独角兽企业重金招聘Python工程师标准>>> 把 Redis 当作数据库的用例 现在我们来看看在服务器端 Java 企业版系统中把 Redis 当作数据库的各种用法吧.无论 ...

  6. Spring Data Redis学海拾贝

    简介: Redis redis是一款开源的Key-Value数据库,运行在内存中,由ANSI C编写.企业开发通常采用Redis来实现缓存.同类的产品还有memcache .memcached .Mo ...

  7. 使用Spring Data Redis操作Redis(集群版)

    说明:请注意Spring Data Redis的版本以及Spring的版本!最新版本的Spring Data Redis已经去除Jedis的依赖包,需要自行引入,这个是个坑点.并且会与一些低版本的Sp ...

  8. Redis - Spring Data Redis 操作 Jedis 、Lettuce 、 Redisson

    文章目录 官网 Jedis VS Lettuce Jedis Code POM依赖 配置文件 配置类 单元测试 Lettuce Code Redisson Code POM依赖 配置文件 配置类 单元 ...

  9. Spring Boot使用Spring Data Redis操作Redis(单机/集群)

    说明:Spring Boot简化了Spring Data Redis的引入,只要引入spring-boot-starter-data-redis之后会自动下载相应的Spring Data Redis和 ...

  10. Java Spring Data Redis实战与配置参数详解 application.properties...

    Redis作为开源分布式高并发缓存,使用范围非常广泛,主流互联网公司几乎都在使用. Java Spring Boot 2.0实战开发Redis缓存可以参考下面的步骤,Redis安装可以直接使用Linu ...

最新文章

  1. 【Qt】QtCreator中配置clang-format
  2. java log4j mysql_java – log4j:MySQL的JDBCAppender错误
  3. (完全解决)为什么运行.bat批处理文件但是只执行了.bat文件中的第一句(行)命令
  4. 美国出手管制五家中国超算企业
  5. openstack学习笔记三 创建第一个实例
  6. equals方法重写详解
  7. 如何测试一个网页登陆界面
  8. 2017-2018-2 20165329 实验五 网络编程与安全
  9. python获取html文本框内容_Python3处理HTML获取所需内容
  10. javascript Date日期类
  11. MAC上安装JDK后的所在目录
  12. web调试代理工具Whistle
  13. 小白学VUE——实现抖音时钟(NPM方式)
  14. Oracle 锁表查询和解锁方法
  15. spring框架对jdk版本要求
  16. html input 密文,HTML input text框显示为密文
  17. AR模型收敛:特征根在单位圆内
  18. 微信公众号,JS-SDK获取位置信息,并调起第三方地图App导航
  19. Java1Java2
  20. 【对话通信原理】第3章 信息的坐骑——信号

热门文章

  1. Unity UI代码自动生成
  2. Java Web学习路线
  3. ZOJ Problem Set - 3329 One Person Game
  4. Arduino 各种模块篇 motor shield
  5. android 拨打电话 号码判断
  6. 使用Image类提示内存不足问题
  7. Sql Server截断日志(转)
  8. Android NDK开发method GetStringUTFChars’could not be resolved
  9. VS2005新建应用工程出错解决方法
  10. python3邮件_python3使用SMTP发送HTML格式邮件