我使用MemoryCache类创建了一个缓存.我添加了一些项目,但是当我需要重新加载缓存时,我想首先清除它.最快的方法是什么?我应该遍历所有项目并一次删除一个项目还是有更好的方法?
如何从 ASP.NET Core 正确清除 IMemoryCache?
我相信这个类缺少 Clear 方法,但无论如何如何处理它?在我的项目中,我将 DocumentRepository 的方法缓存 24 小时,从数据库中获取大量行。但有时我可以更改数据库,所以我想清除 IMemoryCache,因为它有垃圾数据。
要简洁.是否可以在.Net Core Web应用程序中列出内存缓存中的所有注册密钥?
我在IMemoryCache界面中找不到任何东西.
乍一看,这似乎是该问题的重复,但是我没有问如何清除EF的缓存。
如何清除IMemoryCache接口设置的整个缓存?
public CacheService(IMemoryCache memoryCache)
{
this._memoryCache = memoryCache;
}
public async Task<List<string>> GetCacheItem()
{
if (!this._memoryCache.TryGetValue("Something", out List<string> list))
{
list= await this ...
this._memoryCache.Set("Something", list, new MemoryCacheEntryOptions().SetPriority(CacheItemPriority.NeverRemove));
}
return list;
}
Run Code Online (Sandbox Code Playgroud)
这只是一个例子。我有许多类/方法正在存储要缓存的值。现在,我需要将其全部删除。
在某些情况下,我的密钥是动态创建的,因此我不知道需要删除哪些密钥。清除将是完美的。
我可以编写自己的接口和类以供内部使用IMemoryCache,但这似乎有些过分。有没有更简单的选择?
asp.net-core ×3
c# ×3
caching ×3
memorycache ×2
.net-4.0 ×1
.net-core ×1
asp.net ×1
asp.net-mvc ×1
memory ×1