2013-10-04 37 views
1

我有一个在IIS 7上运行的ASP.NET MVC应用程序。它设置为Web园,并且工作进程数与我的处理器数相匹配。有时候我倾向于经历一些沉重的负载,并且这种设置最有效。跨工作进程清除MemoryCache

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

.NET 4 System.Runtime.Caching功能是否使这更容易?下面是一个类似的问题,但我希望能有一个与.NET更好的建议4. Flush HttpRuntime.Cache objects across all worker processes on IIS webserver

回答

0

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

如果你想在多台物理机器上运行你的网站,或者你的情况下运行它作为网上花园,缓存任何进程缓存中的数据不会使很有道理,因为它会再次为每个进程缓存它。这将让内存消耗很快我想长大......

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

我工作2相当受欢迎分布在内存缓存系统中,一个是memcached这也在你的链接中提到过。

另一种是app fabric cachehere is a good example如何使用它

Memchached是一个“简单”的缓存,它不关心摆在首位的安全,所有这些东西。但它很容易实现,并且有很好的使用方法,几乎​​和.Net构建在一起。

如果要加密缓存的数据传输,并拥有这一切高安全,你可能想要去与应用布...

+0

感谢。我被怀疑可能是这种情况。我想我会尝试memcached,因为我不需要任何复杂的东西。 – Jonathan