繁体   English   中英

跨工作进程清除MemoryCache

[英]Clear MemoryCache across worker processes

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

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

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

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

如果要在多台物理计算机上运行站点,或者将其作为Web Garden运行,那么在进程内缓存中缓存数据就没有多大意义,因为它将为每个进程再次缓存它。 我猜这将使内存消耗快速增长。

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

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

另一个是应用程序结构缓存这是如何使用它的一个很好的例子

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM