gpt4 book ai didi

javascript - 使用 Node 在内存中处理大型 JSON 数据集

转载 作者:行者123 更新时间:2023-11-30 05:39:21 24 4
gpt4 key购买 nike

我正在从 Salesforce 中提取 JSON 数据。我可以拥有大约 10 000 条记录,但不会更多。为了防止 Api 限制和必须为每个请求打 Salesforce,我想我可以每小时查询一次数据,然后将其存储在内存中。显然,这会快得多,而且更不容易出错。

一个 JSON 对象可能有大约 10 个属性,可能还有一个嵌套的 JSON 对象有两个或三个属性。

我正在使用类似于下面的方法来查询记录。

getUniqueProperty: function (data, property) {
return _.chain(data)
.sortBy(function(item) { return item[property]; })
.pluck(property)
.uniq()
.value();
}

我的问题是

  • 将数据存储到内存中并使用内存中的数据会产生什么后果?我显然不想通过对数据运行大量过滤来阻止服务器。

  • 我以前从未使用过 redis,但是像缓存数据库这样的东西会有帮助吗?

  • 最好每小时查询一次数据,并将 JSON 响应存储在 Mongo 之类的东西中。然后我会针对 Mongo 而不是在内存中进行所有查询?我每小时查询 Salesforce,我只是刷新数据库并重新插入数据。

最佳答案

将数据存储在内存中有几个缺点:

  • 不可扩展——当您决定使用更多进程时,每个进程都需要发出相同的 api 请求;
  • 脆弱——如果您的进程崩溃,您将丢失数据。

此外,处理大量数据可能会比您希望的更长时间阻塞进程。

解决方法: - 使用外部存储!可以是redis,也可以是MongoDB或RDBMS; - 在单独的进程中更新数据,由 cron 触发; - 不要丢弃整个数据库:有人可能会在此之后立即发出请求(当然,如果您的存储不支持事务),更新记录。

关于javascript - 使用 Node 在内存中处理大型 JSON 数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21648434/

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