Google GCP 云运行 redis 客户端失去与实例的连接

问题描述

我在 google cloudrun 上运行我的 nodejs 应用程序。我的应用程序连接到 google memorystore redis。每隔几分钟就会出现以下错误

错误:读取连接重置

关注

AbortError:Redis 连接丢失且命令中止。它可能已被处理。

请帮助我错过了什么?

我的 nodejs 代码

const redis = require('redis')

const redisClient = redis.createClient({host:'xxx',port: 6379})
redisClient.on('error,function (err) {
console.log(err)
}

const data = await redisClient.getExAsync('key') 

解决方法

使用“setInterval”函数每分钟调用一次Redis操作。

async function RedisKA() {
  client.get("key2",(err,reply) => {
    console.log(`${kaCount} redis keep `);
  });

}

let updateIntervalId = setInterval(RedisKA,60000);

如果您想避免 Cloud Run side 上的请求超时(默认为 5 分钟),请根据您的要求设置您的值。

,

该问题可能是由于套接字超时引起的。预计在一段时间内没有活动时会发生这种情况。

这可以通过定期在连接上执行任何命令来避免,例如每分钟一个命令,因此它会保持套接字活动并且不会中止连接。