在Jedis中获得例外

时间:2015-12-18 07:27:38

标签: redis jedis

我有时会访问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)

有人可以帮我解决这个问题吗?

3 个答案:

答案 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()方法。