我正在使用内部网,我想在服务器上缓存一个对象,并在请求时将其提供给用户,而不是让每个用户生成自己的对象副本。我也想每隔30分钟刷新一次物体......
我目前正在使用HttpContext.Current.Cache,但我不确定是否: 那就是我在寻找的东西 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宽缓存。您的案例适合存储您需要在所有用户之间共享的任何对象。它还支持到期。