node.js模块,用于将redis键作为流读取

时间:2017-05-16 02:58:24

标签: node.js redis stream

我在Node.js上读取Redis中的键时遇到问题,并将数据保存到mongodb。 由于密钥数量巨大(130万),这会导致JavaScript堆内存不足。

有人可以建议我使用一些Node.js模块来读取Redis密钥作为流或其他解决此问题的方法,所以我可以避免这个问题。

非常感谢!

1 个答案:

答案 0 :(得分:1)

ioredishttps://github.com/luin/ioredis)确实支持流。

自述文件中的SCAN示例。

var redis = new Redis();
// Create a readable stream (object mode)
var stream = redis.scanStream();
var keys = [];
stream.on('data', function (resultKeys) {
  // `resultKeys` is an array of strings representing key names
  for (var i = 0; i < resultKeys.length; i++) {
    keys.push(resultKeys[i]);
  }
});
stream.on('end', function () {
  console.log('done with the keys: ', keys);
});