我从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,我只需刷新数据库并重新插入数据。
答案 0 :(得分:1)
将数据存储在内存中有几个缺点:
同时处理大量数据可能会比您想要的更长时间地阻止进程。
解决方案: - 使用外部存储!它可以是redis,或MongoDB或RDBMS; - 用cron触发的单独进程更新数据; - 不要删除整个数据库:有人可能会在那之后立即发出请求(当然,如果你的存储不支持事务),更新记录。