在nodejs + mongoose

时间:2017-01-28 11:29:50

标签: node.js caching

让我开始使用我使用的缓存代码

helper['listAll'] = ()=>{
  return new Promise((fullfill,reject)=>{
    if(cache.get("footer") == null){
      footerModel
        .find({})
        .then((data)=>{
          cache.put("footer",data,parseInt(process.env.CACHE_FOOTER_TIMEOUT));
          fullfill(data);
        })
        .catch((ex)=>{
          reject(ex);
        });
    }else{
      fullfill(cache.get("footer"));
    }
  });
}

现在您可以看到我需要检查缓存系统在生产环境中的效率如何,为此我需要以命中/未命中率计算数学。应该可以通过Web控制台访问数据。问题是,如果我继续为每个命中/未命中编写插入查询,那么效率会更低,并且根本不会使用缓存。我可以采用哪种最佳方式将计算存储在数据库中并且不会使dbs系统过载?

我使用的缓存模型是memory-cache,我尝试的最后一个方法是在命中/未命中时设置一个全局计数器,以及一个每隔10秒将值推送到redis服务器的超时功能。这有更好的方法吗?

0 个答案:

没有答案