Грязный обходной путь, может вызвать некоторые проблемы, но, насколько я могу судить, это единственный способ удалить все элементы сразу без перезагрузки службы :)
рвый взгляд это выглядит дубликатомэтот вопрос, но я не спрашиваю, как очистить кэш для 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;
}
Это всего лишь пример. У меня есть много классов / методов, которые хранят значения для кэширования. Теперь мне нужно удалить их все.
Мои ключи в некоторых случаях создаются динамически, поэтому я не знаю, какие ключи мне нужно удалить. Ясно было бы идеально.
Я мог бы написать свой собственный интерфейс и класс, который будет использовать внутриIMemoryCache
, но это кажется излишним. Есть ли более простые варианты?