在asp.net中缓存

我想在我的asp.net-mvc网站中缓存我的大部分数据库繁重的操作。 在我的研究中,我发现了

  • 甜甜圈在Phil的博客上缓存
  • 在Kazi的博客上缓存/压缩过滤器
  • Scott Hansleman关于他们如何在SO中缓存事物的播客。
  • 但我觉得我还没有得到它。
    我希望能够缓存我的POST请求取决于几个部分。 这些语法在一个对象中。 所以我想缓存下面的请求的结果:

    public ActionResult AdvancedSearch(SearchBag searchBag)
    

    searchBag是一个可以包含(一堆)可选搜索参数的对象。 我的看法本身很轻(应该是这样),但数据访问可能相当耗时,取决于搜索包中填入的字段。

    我有感觉我应该缓存在我的数据层上,而不是在我的操作上。
    我该如何在OutputCache属性中使用VaryByParam?


    我也喜欢在模型或数据层中缓存。 这隔离了从控制器/演示中检索数据所做的一切。 您可以从System.Web.HttpContext.Current.Cache访问ASP.NET缓存或使用企业库中的缓存应用程序块。 为查询的参数创建缓存数据的密钥。 更新数据时一定要使缓存失效。


    或者您可以独立于HttpRuntime.Cache的HttpContext.Current和访问缓存:)


    通常,OutputCaching可以是最快和最有效的,但只有当它满足您的要求时才是如此。 没有意义的是,如果它错了,快速高效! ;)

    在这种情况下,听起来像数据层的缓存是正确的,因为你有复杂的缓存需求。 有时,如果控制输出缓存的参数集简单,则可以将两者结合起来。

    链接地址: http://www.djcxy.com/p/55691.html

    上一篇: Caching in asp.net

    下一篇: Mobile Safari disables ajax function in iOS 5