C# 跨工作进程清除MemoryCache

C# 跨工作进程清除MemoryCache,c#,asp.net,caching,memorycache,C#,Asp.net,Caching,Memorycache,我有一个在IIS 7上运行的ASP.NET MVC应用程序。它被设置为一个web花园,工作进程的数量与我的处理器的数量相匹配。我往往会遇到一些沉重的负荷,这种设置工作得最好 我已经使用System.Web.Cache实现了一些缓存。我偶尔需要使缓存中的某些项无效,但我无法在所有进程中清除缓存 .NET 4 System.Runtime.Caching功能是否使这变得更容易?这里有一个类似的问题,但我希望对.NET4有更好的建议。 System.Web.Cache和System.Runtime.C

我有一个在IIS 7上运行的ASP.NET MVC应用程序。它被设置为一个web花园,工作进程的数量与我的处理器的数量相匹配。我往往会遇到一些沉重的负荷,这种设置工作得最好

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

.NET 4 System.Runtime.Caching功能是否使这变得更容易?这里有一个类似的问题,但我希望对.NET4有更好的建议。

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

如果你想在多台物理机器上运行你的站点,或者在你的例子中你把它作为web garden运行,那么在任何进程内缓存数据都没有多大意义,因为它会为每个进程再次缓存数据。我想这会让内存消耗快速增长

在这些场景中,分布式缓存系统是最佳选择,因为所有进程都可以利用已缓存的数据

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

另一个是如何使用它的问题

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


如果您想加密缓存的数据传输并确保所有这些高安全性,您可能需要使用app fabric…

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

如果你想在多台物理机器上运行你的站点,或者在你的例子中你把它作为web garden运行,那么在任何进程内缓存数据都没有多大意义,因为它会为每个进程再次缓存数据。我想这会让内存消耗快速增长

在这些场景中,分布式缓存系统是最佳选择,因为所有进程都可以利用已缓存的数据

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

另一个是如何使用它的问题

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


如果您想加密缓存的数据传输并确保所有这些高安全性,您可能需要使用app fabric…

谢谢。我怀疑可能是这样。我想我会试试memcached,因为我不需要任何复杂的东西。谢谢。我怀疑可能是这样。我想我会尝试memcached,因为我不需要任何复杂的东西。