我想在数据访问层进行一些缓存,以帮助提高性能。我已经决定使用HTTPContext缓存,顶部有一个抽象层,以便我可以在以后根据需要切换进出其他缓存策略。
基本上缓存应该是变体的,这意味着对于每个单独的方法,它将根据传入的值缓存不同的结果。
我的问题是,如果我想要一个“每个函数的缓存”,并且系统根据传递给方法的值确定是否要访问数据库或缓存,我该怎么办?关于这样做(即获取项目值或其他东西的哈希 - 但必须有更好的方法)。
我知道我可以做一些关于交叉问题以及EL和缓存应用程序块的东西,但是它的开销比我想要的要多一些。我想做一些相当轻量级的东西,我可以控制(例如,我可以传入一个参数,我可以检查哪个会绕过缓存 - 例如)
干杯安东尼
答案 0 :(得分:2)
我们使用企业库缓存应用程序块。 Entlib Cache的工作方式类似于带有键和值的字典。
Entlib缓存允许您创建多个命名缓存,在您的情况下,它将是每个函数一个。
在每个缓存中,您可以使用参数作为键。然后您可以按如下方式执行此操作: