我有一个运行在IIS7上的ASP.NET MVC应用程序,它是作为一个网络花园设置的,并且工作进程的数量与我的处理器数量相匹配。我往往会经历一些沉重的负担,这是最好的设置。
我使用System.Web.Cache实现了一些缓存。我偶尔需要使缓存中的某些项失效,但是无法清除所有进程的缓存。
.NET 4的System.Runtime.Caching特性是否使这更容易呢?这里有一个类似的问题,但我希望.NET 4. 在IIS服务器上的所有工作进程中刷新HttpRuntime.Cache对象有更好的建议。
发布于 2013-10-04 21:26:47
System.Web.Cache和System.Runtime.Caching提供了几乎相同的特性,它只是一个简单的内存缓存,缓存中的项可以有过期时间、依赖项等.
如果您想在多台物理机器上运行您的站点,或者在您的情况下将其作为web花园运行,那么在进程缓存中缓存数据就没有什么意义了,因为它会再次为每个进程缓存它。这会让内存消耗增长很快我想..。
在这些情况下,分布式缓存系统是最好的选择,因为所有进程都可以利用已经缓存的数据.
我在内存缓存系统中使用了两个非常流行的分布式系统,其中一个是梅卡奇,它在您的链接中也提到过。
另一个是如何使用它的app结构缓存,下面是一个很好的例子。
Memchached是一个“简单”的缓存,它一开始就不关心安全性和所有这些东西。但是它很容易实现,并且有很好的.Net客户端,它们非常容易使用,几乎就像.Net在垃圾中构建的那样。
如果您想加密您的缓存的数据传输,并且所有这些高度安全,您可能需要使用app .
https://stackoverflow.com/questions/19190581
复制相似问题