我的redis初始化函数可能导致内存泄漏

时间:2018-03-16 05:03:57

标签: javascript memory-leaks redis closures

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都会关闭connect。这部分让我很困惑。有人可以向我解释一下吗?

1 个答案:

答案 0 :(得分:0)

来自createClient模块的

redis函数同步返回客户端,因此,您无需等待connect事件。您可以直接从createClient对象上的app函数设置返回的客户端。如果内存泄漏实际上是由此函数引起的,这应该可以解决它。