我有时会访问Jedis时遇到以下异常。
例外1:
java.lang.ClassCastException: java.lang.Long cannot be cast to [B
at redis.clients.jedis.Connection.getBinaryBulkReply(Connection.java:204)
at redis.clients.jedis.Connection.getBulkReply(Connection.java:193)
at redis.clients.jedis.Jedis.get(Jedis.java:89)
例外2:
redis.clients.jedis.exceptions.JedisDataException: ERR Protocol error: invalid bulk length
at redis.clients.jedis.Protocol.processError(Protocol.java:113)
at redis.clients.jedis.Protocol.process(Protocol.java:131)
at redis.clients.jedis.Protocol.read(Protocol.java:200)
at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:285)
at redis.clients.jedis.Connection.getBinaryBulkReply(Connection.java:204)
at redis.clients.jedis.Connection.getBulkReply(Connection.java:193)
at redis.clients.jedis.Jedis.get(Jedis.java:89)
有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
我认为这不是Jedis的错误。 Redis具有各种体积长度的限制,并且没有很好地记录。以this question为例。并查看多重长度限制in Redis source code:
如果总响应超过512 * 1024 * 1024字节,则会捕获
invalid bulk length
错误(第1118行)。
答案 1 :(得分:0)
确保类文件“可序列化实现”。
示例:
public class Sample1 extends Sample2 implements Serializable
{
// implementation here
}
答案 2 :(得分:0)
对Jedis实例进行操作后,应调用Jedis.close()方法。