Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Redis连接关闭错误_Redis_Jedis - Fatal编程技术网

Redis连接关闭错误

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

我得到一个连接异常(在末尾给出),即使我做了以下操作:

创建绝地实例时,我将超时字段设置为1小时(60*60*1000)。我也用0尝试过,但也不起作用

当我在7分钟后检查日志时,我注意到了它,尽管我认为异常会发生得更早(300秒)。为什么我总是得到它?知道为什么吗

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),现在问题似乎已经解决了。让我们看看!!!祝你好运!!我遇到了这个问题。你能帮助我吗?谢谢