Redis 连接在 5 分钟后使用 docker-compose 关闭

Redis connection closed after 5 minutes using docker-compose

我有一个简单的 Node.js 应用程序,我在本地使用 docker-compose 到 运行。它包括使用官方 Redis Docker image(5.0 版)的 Redis 服务。

我的 Node.js 应用程序使用的是官方 Node image(版本 14.17.5)。

我的自定义 Node.js 应用程序使用 Node Redis(版本 4.0.1)连接到 Redis 服务。 Node Redis 客户端是基于事件的,在第 5 分钟标记处发布“结束”事件,表示连接已关闭。我希望保持连接。

连接在我们使用 Kubernetes 的暂存环境中永久保持活动状态,因此我认为这不是 Node.js 代码的问题。我怀疑他们是我的 docker-compose.yml.

的问题

我尝试将我的 Redis 应用程序的 Redis tcp-keepalive 设置从 300 降低到 200(秒)但这并没有解决我的问题。

我找到了适合我的解决方案。

在 docker-compose.yml 中,我将以下配置添加到我的 Node.js 服务中:

services:
  app:
    sysctls:
      - net.ipv4.tcp_keepalive_time=200

看起来 OS TCP 连接超时。