【问题标题】:Clear MemoryCache across worker processes跨工作进程清除 MemoryCache
【发布时间】:2013-10-04 20:51:13
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# asp.net caching memorycache


    【解决方案1】:

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

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

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

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

    另外一个是app fabric cache,here is a good example的使用方法

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

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

    【讨论】:

    • 谢谢。我怀疑可能是这种情况。我想我会尝试 memcached,因为我不需要任何复杂的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    相关资源
    最近更新 更多