使用变量作为查询缓存会导致NodeJS

时间:2016-09-27 21:17:28

标签: node.js mongodb caching global-variables

我想知道将查询结果存储在变量中并且每隔几分钟更新一次是一个好主意(性能明智),因为我的节点应用程序中有多个数据库查询(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});
});

这是缓存并向多个客户端显示相同查询结果的好方法吗?

1 个答案:

答案 0 :(得分:0)

您可以使用此模块而不是创建缓存层: https://www.npmjs.com/package/memory-cache

您必须小心不要将大量数据存入内存。如果你想推进数以百万计的结果,那可能不是一个好主意。