const redis = require('redis');

module.exports = function redisClientConfig(app) {
  const redisClient = redis.createClient(app.get('redis-config'));

  redisClient.on('connect', () => {
    app.redisClient = redisClient;
  });
};

此函数只被调用一次,但它会导致内存泄漏。
我的直觉是每次事件发生时app.redisClient都会变成redisClient。这部分让我困惑。有人能再给我解释一下吗?

最佳答案

createClient模块中的redis函数同步返回客户机,因此不需要等待connect事件。您可以直接从createClient对象上的app函数设置返回的客户机。如果内存泄漏实际上是由这个函数引起的,那么应该可以解决这个问题。

09-26 18:35