1

我有一个在 IIS 7 上运行的 ASP.NET MVC 应用程序。它被设置为一个网络花园,工作进程的数量与我的处理器数量相匹配。我有时会承受一些沉重的负担,而这种设置效果最好。

我已经使用 System.Web.Cache 实现了一些缓存。我有时需要使缓存中的某些项目无效,但是我无法清除所有进程的缓存。

.NET 4 System.Runtime.Caching 功能是否让这更容易?这是一个类似的问题,但我希望.NET 4 有更好的建议。 在 IIS 网络服务器上的所有工作进程中刷新 HttpRuntime.Cache 对象

4

1 回答 1

1

System.Web.Cache 和 System.Runtime.Caching 提供几乎相同的功能,它只是一个简单的内存缓存,其中缓存中的项目可以具有过期时间、依赖关系等...

如果您想在多台物理机器上运行您的站点,或者在您的情况下将其作为网络花园运行,那么在任何进程缓存中缓存数据没有多大意义,因为它会再次为每个进程缓存它。我猜这会让内存消耗很快增长......

在这些情况下,分布式缓存系统是最佳选择,因为所有进程都可以利用已经缓存的数据......

我使用了 2 个非常流行的分布式内存缓存系统,一个是memcached,在您的链接中也提到了。

另一个是应用结构缓存这里有一个很好的例子来说明如何使用它

Memchached 是一个“简单”的缓存,它首先不关心安全性和所有这些东西。但它很容易实现,并且有很好的.Net 客户端,它们使用起来非常简单,几乎和.Net 内置的废话一样。

如果您想加密缓存的数据传输并确保所有这些高度安全,您可能需要使用应用程序结构......

于 2013-10-04T21:26:47.807 回答