redis.clients.jedis.exceptions.JedisConnectionException:意外的流结束

时间:2015-02-26 07:56:43

标签: redis jedis

我正在尝试在使用Jedis客户端时向Redis服务器添加一些数据,我收到以下错误:Unexpected end of stream错误。可能是造成这种情况的原因是什么?

  

redis.clients.jedis.exceptions.JedisConnectionException:意外的流结束。

     

[info] at redis.clients.util.RedisInputStream.ensureFill(RedisInputStream.java:198)

     

[info] at redis.clients.util.RedisInputStream.readByte(RedisInputStream.java:40)

     

[info] at redis.clients.jedis.Protocol.process(Protocol.java:128)

     

[info] at redis.clients.jedis.Protocol.read(Protocol.java:192)

     

[info] at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:282)

     

[info] at redis.clients.jedis.Connection.getStatusCodeReply(Connection.java:181)

     

[info] at redis.clients.jedis.Jedis.watch(Jedis.java:1449)

3 个答案:

答案 0 :(得分:2)

我有同样的例外。在我的情况下,问题是两个并发线程试图同时使用Jedis。一旦我确保只有一个线程向/从我的Jedis客户端写入/读取,问题就消失了。

答案 1 :(得分:0)

redis服务器已设置超时

config get timeout

jedisPoolConfig设置setTimeBetweenEvictionRunsMillis不合理

答案 2 :(得分:0)

嵌入式Redis服务器需要一段时间才能释放端口。在 afterAll 方法结束时添加 10 秒睡眠对我有用。我同意这不是一个干净的解决方案。

override def afterAll() {
    super.afterAll()
    jedis.close()
    redisCluster.stop()
    TimeUnit.SECONDS.sleep(10)
}