让我开始使用我使用的缓存代码
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服务器的超时功能。这有更好的方法吗?