Вывод списка и удаление всех записей кэша из данной группы с использованием IDistributedCache - PullRequest
0 голосов
/ 09 апреля 2019

Я храню некоторый ключ, сгенерированный пользователями в настройке IDistributedCache.

Ключ является долгоживущим, и пользователь может отозвать его вручную, если пользователь знает каждый из них:

public void ConfigureServices(IServiceCollection services)
{
    services.AddDistributedMemoryCache();
    //...
}

//ControllerBase:

//Adding the key:
await _cache.SetAsync(userKey, userId, new DistributedCacheEntryOptions 
{ 
    AbsoluteExpirationRelativeToNow = TimeSpan.FromDays(10)
});

Removing the key:
await _cache.RemoveAsync(key);

Теперь я хочу перечислить все ключи, все еще присутствующие в кэше, которые были созданы одним из пользователей.Кроме того, я хочу иметь возможность массового их удаления.

Есть ли сейчас такая функциональность?Может с токенами отмены?Как я могу это сделать?

1 Ответ

1 голос
/ 09 апреля 2019

Нет, вы можете работать только с одним ключом одновременно с IDistributedCache.Массовое выселение из ключа и подобные сценарии выходят за рамки этого фасада.Если вам нужно работать с более сложными сценариями, вам следует подключиться к кешу напрямую, используя соответствующий клиент.Например, для поддержки Redis вы можете использовать пакет StackExchange.Redis и выполнять любые команды, которые вам нравятся, с помощью этого.

...