Open
Description
Description
I'm running redis with replication, with the simple client configuration createClient({ url })
. After the initial connection is successfully established, the socket is closed after 5 seconds. I guess this is because the socket connectTimeout
is by default 5s, and in packages/client/lib/client/socket.ts
, it'll close it based on the property.
async #createSocket(): Promise<net.Socket | tls.TLSSocket> {
const socket = this.#socketFactory.create();
let onTimeout;
if (this.#connectTimeout !== undefined) {
onTimeout = () => socket.destroy(new ConnectionTimeoutError());
socket.once('timeout', onTimeout);
socket.setTimeout(this.#connectTimeout);
}
....
return socket;
}
I've already taken a look into other related issues, and I tried setting pingInterval
and setting socket connectTimeout
to 0, and as expected, the socket is closed regardless. What is the recommended way to keep the socket connection alive?
INFO:
Redis is deployed via Helm (bitnami 20.1.4) into kubernetes cluster, with one master node and 3 replicas.
Node.js Version
20.14.0
Redis Server Version
7.4.0
Node Redis Version
4.7.0
Platform
Linux
Logs
No response