2015-12-18 78 views
0

有時在訪問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) 

誰能幫我解決這個問題?

+0

產生這些錯誤的代碼是什麼? – Turn

回答

0

我認爲這不是傑迪斯的錯誤。 Redis具有各種散裝長度的限制,並沒有很好的記錄。例如,看this question。而看看multibulk長度限制in Redis source code

如果你總有超過512個* 1024個* 1024字節你將捕獲invalid bulk length錯誤(行1118)。