我在Node.js上读取Redis中的键时遇到问题,并将数据保存到mongodb。 由于密钥数量巨大(130万),这会导致JavaScript堆内存不足。
有人可以建议我使用一些Node.js模块来读取Redis密钥作为流或其他解决此问题的方法,所以我可以避免这个问题。
非常感谢!
答案 0 :(得分:1)
ioredis
(https://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);
});