用于电子商务项目的Mvc 4缓存数据库

时间:2014-01-23 13:58:43

标签: asp.net asp.net-mvc asp.net-mvc-4 caching sqlcachedependency

我有一个电子商务的MVC4项目即将完成。我在输出缓存中使用sqldependecy。但最好的方法是什么? 产品详情页面? 有产品清单的类别页面? 过滤页面? bla bla

你能帮我解决缓存问题吗? (我在我的项目中使用带有linq的sql server到sql) 实施例;

[OutputCache(Duration = Int32.MaxValue,SqlDependency =“Demo:product”)]

public ActionResult getproducts(int id,int lastid,string filter) {

我从带有params的sql获取数据。

}

是不是?还是应该缓存查询数据bla bla? lastid用于分页。筛选过滤数据的参数。 id表示categoryid

1 个答案:

答案 0 :(得分:0)

让我们从头开始:我假设你想优化你的网店,这就是你需要一些缓存机制的原因。 您选择使用OutputCache可能是因为它易于使用且开箱即用。 您可能知道OutputCache缓存来自服务器的响应,因此它不直接与缓存SQL查询或一般数据相关联。因此,我首先建议您考虑一下您真正需要什么类型的缓存 - 输出缓存(位于System.Web.Configuration.OutputCacheSection中),数据缓存(位于System.Web.Caching.Cache中)或两者兼而有之?

假设您选择了OutputCache。您需要确保可以更改服务器响应的所有内容都应作为缓存参数发送。所以在产品页面的情况下,这可能至少是一个ProductId,在CategoryPage(ProductListPage)的情况下,这可能是CategoryId,PageId,PageSize,一些排序参数,过滤器参数(如果你使用过滤)等。

您需要考虑的参数越多,缓存所有可能的参数组合的时间就越长。 作为一个例子,我会将OutputCaching用于Product Page,但我会考虑将其用于CategoryPage(ProductListPage),尤其是在使用过滤器,分页,排序等的情况下。