获取redis缓存反序列化问题

Blade 未结 5 2762
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条回答
  •  admin
    admin (楼主)
    2020-10-15 15:32

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

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

    image.png

    作者追问:2020-10-15 15:32

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

    error.jpg

提交回复