【问题标题】:Caching Data Access Layer Results缓存数据访问层结果
【发布时间】:2010-11-23 17:42:34
【问题描述】:

我想在数据访问层做一些缓存以帮助提高性能。我已经决定我将使用 HTTPContext 缓存,顶部有一个抽象层,因此我可以在以后根据需要切换进出其他缓存策略。

基本上缓存应该是变体的,这意味着对于每个单独的方法,它将根据传入的值缓存不同的结果。

我的问题是,如果我想要一个“每个函数的缓存”并且让系统根据传递给该方法的值来确定是访问数据库还是访问缓存,我​​会怎么做关于这样做(即对项目值或其他东西进行哈希处理 - 但必须有更好的方法)。

我知道我可以用横切关注点、EL 和缓存应用程序块来做一些事情,但是这样做的开销比我想要的要多一些。我想做一些重量相当轻且我可以控制的事情(即我可以传入一个参数,我可以检查哪个参数会绕过缓存 - 例如)

干杯安东尼

【问题讨论】:

    标签: c# .net asp.net caching data-access-layer


    【解决方案1】:

    为此,我们使用企业库缓存应用程序块。 Entlib Cache 的工作方式类似于具有键和值的字典。

    Entlib 缓存允许您创建多个命名缓存,在您的情况下,每个函数一个。

    在每个缓存中,您可以使用参数作为键。然后你可以这样做:

    • 尝试根据键从缓存中获取值。
    • 如果值为 null,则缓存中缺少该值。
    • 因此,从数据库中获取值并将结果放入缓存中,以便下次可用。

    【讨论】:

      猜你喜欢
      • 2014-09-04
      • 1970-01-01
      • 2020-09-09
      • 1970-01-01
      • 2011-05-22
      • 2011-02-10
      • 1970-01-01
      • 1970-01-01
      • 2021-07-12
      相关资源
      最近更新 更多