c# - 使用 IDistributedCache 列出和删除给定组中的所有缓存条目

标签 c# redis asp.net-core-2.2 .net-4.7.2

我将用户生成的一些 key 存储在 IDistributedCache 设置中。

key 是长期存在的,如果用户知道它们中的每一个,它们可以由用户手动撤销:

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);

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

现在有这样的功能吗? 也许有取消 token ?我该怎么做?

最佳答案

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

关于c# - 使用 IDistributedCache 列出和删除给定组中的所有缓存条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55599627/

相关文章:

c# - WCF REST GET 与 JSON 请求对象?

c# - 尝试 COM,C# 默认使用 stdcall 还是必须指定

redis - Redis 是否重新散列 key ?

node.js - 如何使用 Redis 作为多个 aws 实例或 ELB 的 session 存储?

asp.net-core - 使用 UserManagerGenerateUserTokenAsync 创建带有额外数据的自定义 token

c# - ASP.NET核心: HtmlHelper extension (migration issue)

c# - 在 Roslyn 中获取 case 标签常量

python - Redis 队列 + python-rq : Right pattern to prevent high memory usage?

c# - 如何让Serilog丰富日志

c# - C# 中的内存问题,如果 .Net 应用程序调用 dll,则可以正常使用,但如果从旧版应用程序调用 dll,则内存问题为天文数字