【问题标题】:My redis initialization function possibly causing memory leak我的 redis 初始化函数可能导致内存泄漏
【发布时间】:2018-03-16 05:03:56
【问题描述】:
const redis = require('redis');

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

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

这个函数只被调用一次,但它会导致内存泄漏。

我的预感是,每次connect 事件发生时,app.redisClient 都会关闭到 redisClient。这部分让我很困惑。有人可以进一步解释一下吗?

【问题讨论】:

    标签: javascript memory-leaks redis closures


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2021-09-16
      • 2015-04-17
      • 2012-08-18
      • 2019-11-24
      • 1970-01-01
      • 1970-01-01
      • 2021-06-15
      • 2013-07-23
      • 1970-01-01
      相关资源
      最近更新 更多