簡體   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