CacheUtil 读取缓存报错,删除后重新添加就好了

Blade 未结 1 356
elcnu
elcnu 剑童 2024-03-22 08:53

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

1. 使用CacheUtil的

public static void put(String cacheName, String keyPrefix, Object key, @Nullable Object value)
偶尔 会出现 
java.lang.RuntimeException: Reading from a byte array threw an IOException (should never happen).
        at io.protostuff.IOUtil.mergeFrom(IOUtil.java:54)
底层报错是:Protocol message tag had invalid wire type. 

每天都会 调用 CacheUtil 的 put 方法,偶尔会出现 get 缓存失败
失败后,把缓存删除 重新添加就可以正常获取缓存

2. 

3.


二、你期待的结果是什么?实际看到的又是什么?

换成 BladeRedis可以解决这个问题吗?


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

bladex cloud  3.2release centos 7


四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

1条回答
  • 你设置的缓存序列化和反序列化方式不一致导致的。

    作者追问:2024-03-22 09:23

    这个是在哪设置的?

    直接用的框架里的 CacheUtil

    而且 90%时间不报错,偶尔报这个错误

    作者追问:2024-03-22 09:39

    get 的时候是强转的类型,是这里有问题吗

    0 讨论(0)
提交回复