获取redis缓存反序列化问题

Blade 未结 5 2802
mokeycode
mokeycode 剑童 2020-10-15 11:55

一、该问题的重现步骤是什么?

  1. 使用DictCache获取缓存失败,报错如下:


  2. 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.StreamCorruptedException: invalid stream header: 0B4A03E7
    at org.springframework.data.redis.serializer.JdkSerializationRedisSerializer.deserialize(JdkSerializationRedisSerializer.java:84)

  3、为什么系统会去使用

JdkSerializationRedisSerializer做反序列化。

4、当我把redis缓存手动删除后,获取缓存正常,过段时间又报以上反序列化问题
5条回答
  • 2020-10-15 12:03

    重现方式不确定,序列化方式使用的系统自带

    0 讨论(0)
  • 2020-10-15 12:56

    我也遇到了同意的问题,楼主解决了吗

    0 讨论(0)
  • 2020-10-15 15:32

    有没有修改过blade-starter-redis这个模块,如果是序列化和反序列化对应不上会有这个问题。

    框架底层采用的是默认的形式,你可以在这打日志着重关注一下image.png

    image.png

    作者追问:2020-10-15 16:26

    没有修改过blade_stater_redis模块,但是错误的情况是json的序列化,然后使用默认的序列化方式去反序列化就出错了

    error.jpg

    0 讨论(0)
  • 2021-01-03 23:24

    遇到相同的问题,没有修改过代码,怎么解决呀

    0 讨论(0)
  • 2021-06-23 10:59

    相同问题

    0 讨论(0)
提交回复