簡體   English   中英

C#找到一個帶有部分密鑰字符串的WebCache?

[英]C# find a WebCache with partial key string?

using System.Web.Helpers

假設我添加了那些......

WebCache.Set("apple_1","some value")
WebCache.Set("apple_2","some value")
WebCache.Set("apple_3","some value")
WebCache.Set("peach_1","some value")
WebCache.Set("peach_2","some value")
WebCache.Set("peach_3","some value")

有沒有辦法找到密鑰以“apple”開頭的所有緩存並刪除它們? 也許正則表達式..也許不是,任何想法?

看起來好像System.Web.Helpers.WebCache只是“默認”MemoryCache實例的包裝器,您可以通過MemoryCache.Default訪問它。

然后,您可以枚舉條目,檢查密鑰是否符合您的條件,並調用MemoryCache.Remove()以刪除您不想要的條目。

但是 :這有其警告,我建議在走這條路之前至少考慮兩次:

  1. 根據並發插入緩存,您可能永遠不會最終刪除所有要刪除的條目。 因為當你在它時,新的條目 - 你通常想要刪除 - 可能已經被其他人插入。

  2. 枚舉MemoryCache被警告為“資源密集型”,應該避免。 在“默認”緩存實例上加倍,這可能被相當多的工具用作其后備緩存(詳情請參見此處 )。 實際上MSDN甚至告訴你“不要在生產應用程序中這樣做”

最好跟蹤您在其他地方添加的條目,而不是使用“索引”來明確刪除條目(如果您確實需要)。 只要確保這個“其他地方”不會因為內存泄漏而結束,那就是你必須確保它最終被清除(你可以使用MemoryCache的更改通知)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM