【发布时间】:2011-12-26 21:44:53
【问题描述】:
我是asp.net的初学者,有几个关于缓存的问题:
- HttpRuntime.Cache 只提供了几个方法,我想我可以自己用 Dictionary 实现这些方法。
- 如果 HttpRuntime.Cache 比 Dictionary 好很多,为什么有些人想实现自己的缓存框架。
- MS Enterprise Cache Block 怎么样?
【问题讨论】:
标签: c# caching httpruntime.cache
我是asp.net的初学者,有几个关于缓存的问题:
【问题讨论】:
标签: c# caching httpruntime.cache
HttpRuntime.Cache 只提供几个方法,我想我可以 自己用 Dictionary 实现这些方法。
你想错了。 HttpRuntime.Cache 不仅仅是一个简单的字典。它提供线程安全和缓存过期策略。它提供了使用自定义实现的可能性,并从分布式缓存中受益,这对网络农场很有帮助。用字典来实现这一点可能是你可能不想冒险的大量工作,因为你基本上是在重新发明轮子,即使重新发明轮子不会打扰你,做对的机会也很渺茫。
2)如果HttpRuntime.Cache比Dictionary好很多,为什么有些人 想实现自己的缓存框架。
人们不想这样做。
3) MS Enterprise Cache Block 怎么样?
这是重型火炮,当您需要简单的缓存时并不总是必要的,这可以通过框架已经为您提供的开箱即用的功能来实现。
备注:在 .NET 4.0 中,您应该使用新的 System.Runtime.Caching 命名空间而不是 HttpRuntime.Cache。
所以回答你的问题:Should I use HttpRuntime.Cache
是的,除非您使用的是 .NET 4.0,在这种情况下您应该使用来自新的 System.Runtime.Caching 命名空间的类。
【讨论】:
.Add() 方法允许您通过CacheItemPolicy 来控制各种选项。