我想知道在变量中存储查询结果并每隔几分钟更新它们是否是个好主意(性能方面),因为我在我的节点应用程序中有多个数据库查询(MongoDB),不需要更新,其中一些有点复杂。
我在想这样的事情:
var queryResults = [];
myModel.find().exec(function(err, results) {
queryResults = results;
});
:
var interval = 10 * 60 * 1000;
setInterval(function() {
myModel.find().exec(function(err, results) {
queryResults = results;
});
}, interval);
当我需要将查询结果发送到视图引擎时:
app.get('/', function(req, res) {
res.render('index.ejs', {entries : queryResults});
});
这是一个很好的方式来缓存和显示相同的查询结果到多个客户端?
你可以使用这个模块来代替创建你的缓存层:https://www.npmjs.com/package/memory-cache
你必须小心不要把大量的数据放入内存。如果你想在那里推出数百万个结果,可能不是一个好主意。