转换 Redis 密钥时的内存管理
Memory management when converting redis keys
我需要将键从字符串类型转换为哈希。所有键的名称都在设置list:of:keys
中。
我当前的实现如下所示:
var rdbc = require("redis").createClient(6379, '127.0.0.1');
rdbc.smembers("list:of:keys", function(err, strings){
strings.forEach(function(string, index, strings){
rdbc.get(string, function(err, result){
rdbc.del(string);
rdbc.hset(string, "foo", result);
});
});
});
我的尝试奏效了。但是,当list:of:keys
包含许多值时,内存使用量会增长很多。
是否有内存高效的结构来遍历许多键?(尤其是
strings.forEach(…
似乎效率低下)如何通知 node.js 中的垃圾回收器在每次
rdbc.del/rbdc.hset
操作后进行清理?
-
我不知道 node.js 的 redis 驱动程序如何处理这个问题,但如果他们很聪明,他们会使用 redis 提供的一些光标来循环结果。这意味着不要在开始时获取所有结果,它们会在您访问它们时获取它们。
-
垃圾收集由 V8(node.js 的底层 JavaScript 引擎)处理,有很多关于它如何工作的文档(只需搜索"垃圾收集 V8"):
- https://developers.google.com/v8/design#garb_coll
- 节点.js和 V8 垃圾回收
- 使用节点进行垃圾回收.js
- 节点.js"垃圾回收器
相关文章:
- 如何使用java脚本更改浏览器的内存管理以增加会话存储和本地存储的内存
- 主干网.js事件和内存管理
- JavaScript 中的内存管理
- 转换 Redis 密钥时的内存管理
- 在 javascript 函数和内存管理中声明变量
- jQuery:新的临时 DOM 元素的内存管理
- 主干 + 木偶 - 模型/集合的内存管理最佳实践
- 在 express/node.js API 中进行高效的服务器端 JavaScript 内存管理
- 电话间隙内存管理
- JavaScript 中的性能内存管理
- Javascript内存管理:删除和拼接
- Javascript内存管理(requestAnimationFrame回调)
- 使用THRE.JS对象的全局数组的Javascript内存管理
- 了解JavaScript中的内存管理,Mozilla
- 具有重复jQuery数据表AJAX调用的内存管理
- 内存管理在javascript jquery手机与phonegap
- 如何使用YUI进行适当的内存管理以避免泄漏
- Angularjs是如何用ngView处理内存管理的?
- NodeJS+Redis+WebSocket内存管理
- 加速器合金应用中的内存管理