【问题标题】:Mvc 4 cache database for ecommerce project电子商务项目的 Mvc 4 缓存数据库
【发布时间】:2014-01-23 13:58:42
【问题描述】:

我有一个即将完成的电子商务 MVC4 项目。我将 sqldependecy 与 outputcache 一起使用。但是最好的方法是什么? 产品详情页 ? 分类页面有哪些产品列表? 过滤页面?呜呜呜

您能帮我解决缓存问题吗? (我在我的项目中使用带有 linq to sql 的 sql server) 示例;

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

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

我使用参数从 sql 获取数据。

}

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

【问题讨论】:

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


    【解决方案1】:

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

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

    需要考虑的参数越多,缓存所有可能的参数组合就越耗时。 例如,我将 OutputCaching 用于产品页面,但我会考虑将其用于 CategoryPage (ProductListPage),尤其是在使用过滤器、分页、排序等的情况下。

    【讨论】:

    • 感谢您的回复。正如你所说,我需要优化我的网上商店。使用带有 sql 依赖的 outputcache 机制很容易。但是正如你所说,由于分页和过滤bla bla,分类(产品列表)页面是不明智的。在这种情况下我应该使用什么?如果我在每个页面查询中缓存命令,我需要再次缓存。在输出缓存中相同。我应该将varybyparam与sqldependecy一起使用吗?我需要数据缓存。
    猜你喜欢
    • 2012-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-03
    • 2011-07-11
    • 2013-10-27
    相关资源
    最近更新 更多