使用contains关键字删除所有缓存

时间:2019-05-16 07:39:15

标签: c# .net caching c#-4.0 memcached

这就是我创建缓存键的方式

string cachekey_base = "IR_";
string symbol = "AUD";
static string id = "12345";

string cacheKey_Quote = $"{cachekey_base}{symbol}{id}Quote";

ID是随机生成的,因此如果我知道ID,则只需像这样删除缓存

    MemoryCache.Default.Remove(key);

但是问题是Id可以是任意随机数。

有没有一种方法可以使用contains关键字删除。

例如,在我的情况下,如果键包含“ IR_”,则删除所有缓存

任何帮助或建议都将不胜感激。

预先感谢`

1 个答案:

答案 0 :(得分:1)

您可以过滤要删除的键,然后遍历这些键并删除它们 如下:

var removedKeys = MemoryCache.Default.Where( x=> x.Key.Contains("IR_")).Select(x=> x.Key).ToList();
foreach(var key in removedKeys)
    MemoryCache.Default.Remove(key);