gpt4 book ai didi

javascript - Redis 键值转换时的内存管理

转载 作者:IT王子 更新时间:2023-10-29 06:02:54 24 4
gpt4 key购买 nike

我需要将键从字符串类型转换为散列。所有键的名称都在集合 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 包含很多值时,内存使用量会增加很多。

  1. 是否有内存高效的结构来遍历许多键? (尤其是 strings.forEach(... 似乎效率低下)

  2. 如何通知 node.js 中的垃圾收集器在每次 rdbc.del/rbdc.hset 操作后进行清理?

最佳答案

  1. 我不知道 node.js 的 redis 驱动程序如何处理这个问题,但如果他们聪明的话,他们会使用 redis 提供的一些游标来循环遍历结果。这意味着它们不会在开始时获取所有结果,而是在您访问它们时获取它们。

  2. 垃圾收集由 V8(node.js 的底层 JavaScript 引擎)处理。关于它的工作原理有很多文档(只需搜索“垃圾收集 V8”):

关于javascript - Redis 键值转换时的内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11054810/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com