如何在Asp.net C#mvc中缓存数据库表以防止许多数据库查询

我使用Asp.NETMVC4(c#)构建了自己的cms,我想缓存一些数据库数据,比如:本地化、搜索类别(它是长尾的,每个类别都有自己的子类别和子类别),等等

如果一直查询数据库,那就太过分了,因为每个页面请求可以有30到100个以上的查询,但是用户很少更新这些数据库

那么最好的方法(性能和方便性)是什么呢?

我知道如何使用操作的OutputCache,但在这种情况下,我不需要它,我需要的是缓存html,但我需要的是,例如,我自己的助手@html.Localization(“Newsletter.Tite”)将获取语言的值,或者与数据交互的任何其他助手等

我认为(不是很确定)我需要缓存我想要的数据,只有在第一次调用应用程序时,然后使用缓存位置,但我甚至没有任何相关经验

您可以使用内置的MemoryCache存储从数据库检索到的整个结果集

典型的模式是:

MyModel model=MemoryCache.Default[“my\u model\u key”]作为MyModel;
if(model==null)
{
model=GetModelFromDatabase();
MemoryCache.Default[“我的模型”]=模型;
}
//你可以用这里的模型

发表评论