我试图从redis服务器中删除特定模式的密钥,但在执行时,它显示:
redis.clients.jedis.exceptions.JedisConnectionException: Unexpected end of stream.
at redis.clients.util.RedisInputStream.ensureFill(RedisInputStream.java:199)
at redis.clients.util.RedisInputStream.readByte(RedisInputStream.java:40)
at redis.clients.jedis.Protocol.process(Protocol.java:153)
at redis.clients.jedis.Protocol.read(Protocol.java:218)
at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:341)
at redis.clients.jedis.Connection.getBinaryMultiBulkReply(Connection.java:277)
at redis.clients.jedis.Jedis.keys(Jedis.java:284)
作为参考,我的服务器超时值是0,我一直使用的jedis版本是2.10.2。下面是我尝试执行的代码段:
try {
Set<String> keys = jedis.keys(pattern);
jedis.del(keys.toArray(new String[keys.size()]));
} catch(Exception e) {
log.error("Failed to delete key entry for pattern {0}", pattern);
throw e;
}
这里是我们试图删除的字符串。
有什么解决错误的建议吗?
更新-1:
代码在本地运行良好,没有任何jedis函数问题。
在远程服务器上运行时,除此delete keys方法外,其他函数都能正确执行。就在执行绝地武士的时候
暂无答案!
目前还没有任何答案,快来回答吧!