为所有用户缓存一次对象,每30分钟刷新一次

时间:2013-01-17 18:15:51

标签: c# web-services caching web intranet

我正在使用内部网,我想在服务器上缓存一个对象,并在请求时将其提供给用户,而不是让每个用户生成自己的对象副本。我也想每隔30分钟刷新一次物体......

我目前正在使用HttpContext.Current.Cache,但我不确定是否: 那就是我在寻找的东西 2.有更好的方法(我正在考虑网络服务)?

谢谢。

2 个答案:

答案 0 :(得分:1)

使用HttpRuntime.Cache(与HttpContext.Cache相同)有一个陷阱,因为它与AppDomain相关联。当那个回收时,你的缓存也是如此。

而是安装类似Membase(Memcache)的东西,它充当外部缓存提供者,并且在应用程序回收之间保持不变。

至于刷新,我个人会将该项目缓存30分钟,但允许它过期。只有在请求进入且项目不再位于缓存中时才刷新它。这使高速缓存保持高效,因为只有请求的对象保留在高速缓存中。

作为一个无耻的插件我刚才写了一个缓存库,它支持你可以使用的Memcache,请看这里 - http://www.lloydkinsella.net/2012/09/30/bettering-the-better-net-cache/

答案 1 :(得分:1)

HttpContext.Current.Cache是​​所有用户之间共享的appDomain宽缓存。您的案例适合存储您需要在所有用户之间共享的任何对象。它还支持到期。