可以将数据缓存到节点应用程序中的进程对象中

时间:2016-12-26 03:20:11

标签: node.js mongodb caching

当我用节点创建一个博客应用程序(实际上是Express,并且在GitHub中使用开源^ _ ^)时,我发现全局对象"处理"(或其他全局对象)可以每个用户都可以访问,这是测试中间件:

enter image description here

也许我应该直接输入代码:

app.use(function (req, res, next) {
if(req.session.user.login){
    if(!process.name) {
        process.name = {length: 0};
    }
    if(Object.keys(process.name).indexOf(req.session.user.id) === -1){
        process.name['length'] += 1;
        process.name[req.session.user.id] = req.session.user.username;
    }
    console.log('######################');
    console.log('Connection count:%d',process.name['length']);
    console.log('Memory usage:%s', parseInt(process.memoryUsage().heapUsed)/(1024*1024),'MB');
}
next();
});

所以,我认为是否有一条快捷方式将数据从某个地方(在我的情况下,来自Mongodb的数据通过mongoose)放入内存而不是使用redis(这对我来说是一个学习成本)但是只是将数据缓存到进程---节点中的全局对象。

我担心内存泄漏(或命名" stackoverflow"?+ _ +),所以我通过添加以下代码测试内存使用情况:

console.log('Memory usage:%s',parseInt(process.memoryUsage().heapUsed)/(1024*1024),'MB');

日志显示当有两个用户登录时,使用量约为20MB。

再次BTW:我明白节点V8引擎限制内存使用量最大约为700M,这是影响吗? 提前致谢; (忽略我可怜的英语; - ))

0 个答案:

没有答案