Redis连接关闭错误
我得到一个连接异常(在末尾给出),即使我做了以下操作: 创建绝地实例时,我将超时字段设置为1小时(60*60*1000)。我也用0尝试过,但也不起作用 当我在7分钟后检查日志时,我注意到了它,尽管我认为异常会发生得更早(300秒)。为什么我总是得到它?知道为什么吗Redis连接关闭错误,redis,jedis,Redis,Jedis,我得到一个连接异常(在末尾给出),即使我做了以下操作: 创建绝地实例时,我将超时字段设置为1小时(60*60*1000)。我也用0尝试过,但也不起作用 当我在7分钟后检查日志时,我注意到了它,尽管我认为异常会发生得更早(300秒)。为什么我总是得到它?知道为什么吗 Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: It seems like server has closed t
Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: It seems like server has closed the connection.
at redis.clients.util.RedisInputStream.readLine(RedisInputStream.java:90)
at redis.clients.jedis.Protocol.processMultiBulkReply(Protocol.java:111)
at redis.clients.jedis.Protocol.process(Protocol.java:64)
at redis.clients.jedis.Protocol.read(Protocol.java:127)
at redis.clients.jedis.Connection.getBinaryMultiBulkReply(Connection.java:199)
at redis.clients.jedis.BinaryJedis.smembers(BinaryJedis.java:1187)
我建议:
- 检查Redis服务器配置文件中未设置非活动超时。将其设置为零
- 检查应用程序执行的smembers命令是否不会返回数百万项。超过某个阈值时,较大的通信缓冲区可能导致连接关闭
当然,这也可能是由于网络基础设施本身的原因,特别是如果您在公共云的不同虚拟机上运行Redis客户端和服务器。我检查Redis.conf文件,发现这一行“timeout 0”,我是否需要更改任何内容。我也不明白你的评论。请详细说明。超时0表示没有非活动超时-这很好。查看您发布的堆栈,它似乎在smembers命令上失败。因此,您可能需要检查此命令返回的集合是小的还是非常大的。现在,我创建了连接池并使用settstonbrow(true),现在问题似乎已经解决了。让我们看看!!!祝你好运!!我遇到了这个问题。你能帮助我吗?谢谢