1

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

我目前正在使用 HttpContext.Current.Cache,但我不确定: 1. 这就是我正在寻找的 2. 有更好的方法来做到这一点(我正在考虑 Web 服务)?

谢谢你。

4

2 回答 2

2

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

于 2013-01-17T18:21:22.813 回答
1

使用HttpRuntime.Cache(same as HttpContext.Cache) 有一个陷阱,因为它与AppDomain. 当它回收时,您的缓存也会如此。

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

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

作为一个无耻的插件,我前段时间写了一个支持 Memcache 的缓存库,您可以使用它,请参见此处 - http://www.lloydkinsella.net/2012/09/30/bettering-the-better-net-cache/

于 2013-01-17T18:21:13.030 回答