3

我将用户生成的一些密钥存储在一个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);

现在,我想要做的是能够列出仍然存在于缓存中的由其中一位用户创建的所有键。另外,我希望能够批量删除它们。

现在有这样的功能吗?也许有取消令牌?我怎样才能做到这一点?

4

1 回答 1

4

不,您一次只能使用一个键IDistributedCache。Mass key eviction 和类似的场景超出了这个门面的范围。如果您需要处理更高级的场景,那么您应该使用适当的客户端直接连接到您的缓存。例如,对于 Redis 支持,您可以使用该StackExchange.Redis包,并通过它发出您喜欢的任何命令。

于 2019-04-09T19:20:33.110 回答