如何使用 nodeJs childProcess 重用 Redis 连接

How to reuse Redis connection using nodeJs childProcess

如何在 nodeJs 中使用 Childprocess.fork() 创建的进程中重用 redis 连接?

例如,我有一个 redis-config.js 文件,我在其中创建 RedisClient 实例并连接到 redis 服务器。 所以在那之后我会有另一个文件,例如 test.js,在那个文件测试中,js 我会通过导入访问 redis 的实例,然后我可以在 redis 中插入一个键。但这没有创建与 redis 服务器的另一个连接。

例如

redis-conf.js

    const Redis = require('redis');

const redisClient = Redis.createClient({name:'test-conecction'});

module.exports = {redisClient:Object.freeze(redisClient)}

main.js

    const cp = require('node:child_process');
const {redisClient} = require('./redis');

redisClient.connect().then(()=>{  <<=== this is want i want, this does not work, i want to connect only once.
const c1 = cp.fork('./child.js');
const c2 = cp.fork('./child.js');
})

child.js

    const {redisClient} = require('./redis');

redisClient.info().then((data)=>{  <<== when i try this, nodeJs tells that the client is disconnected
    console.log(data);
})

在简历中。这是不可能的。因为node Js创建子Process的时候一切都是re-created,所有的资源都是re-alocated.