[英]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()
以刪除您不想要的條目。
但是 :這有其警告,我建議在走這條路之前至少考慮兩次:
根據並發插入緩存,您可能永遠不會最終刪除所有要刪除的條目。 因為當你在它時,新的條目 - 你通常想要刪除 - 可能已經被其他人插入。
枚舉MemoryCache被警告為“資源密集型”,應該避免。 在“默認”緩存實例上加倍,這可能被相當多的工具用作其后備緩存(詳情請參見此處 )。 實際上MSDN甚至告訴你“不要在生產應用程序中這樣做”
最好跟蹤您在其他地方添加的條目,而不是使用“索引”來明確刪除條目(如果您確實需要)。 只要確保這個“其他地方”不會因為內存泄漏而結束,那就是你必須確保它最終被清除(你可以使用MemoryCache的更改通知)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.