上面代码有时候报java.lang.Long cannot be cast to [B at redis.clients.jedis.Connection.getBinaryBulkReply是什么原因
时间: 2023-12-12 08:02:47 浏览: 170
详解java 客户端链接不上redis解决方案
这个错误可能是由于 Redis 中存储的值的类型与代码中期望的类型不一致,导致类型转换异常。在你的代码中,jedis.hget(keyName, "current_index") 方法返回的值是一个 Long 类型的值,而你在执行 Integer.valueOf() 方法时,试图将这个 Long 类型的值转换为 Integer 类型,导致类型转换异常。
为了避免这个错误,你可以将 jedis.hget(keyName, "current_index") 方法返回的值转换为 String 类型,然后再将其转换为 Integer 类型,如下所示:
```
String indexStr = jedis.hget(keyName, "current_index");
Integer index = Integer.valueOf(indexStr);
```
这样就可以避免将 Long 类型的值转换为 Integer 类型的错误了。同时,你也需要确保 Redis 中存储的值的类型与你的代码中期望的类型一致,避免其他类型转换错误。
阅读全文