我將用戶生成的一些密鑰存儲在一個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);現在,我想要做的是能夠列出仍然存在于緩存中且由其中一位用戶創建的所有密鑰。另外,我希望能夠批量刪除它們?,F在有這樣的功能嗎?也許有取消令牌?我怎樣才能做到這一點?
2 回答

哆啦的時光機
TA貢獻1779條經驗 獲得超6個贊
不,您一次只能使用一個鍵IDistributedCache
。批量密鑰驅逐和類似場景超出了這個門面的范圍。如果您需要處理更高級的場景,那么您應該使用適當的客戶端直接連接到您的緩存。例如,對于 Redis 支持,您可以使用該StackExchange.Redis
包,并通過它發出您喜歡的任何命令。

jeck貓
TA貢獻1909條經驗 獲得超7個贊
您可以使用方法刷新存儲FLUSHALL
(IServer.FlushAllDatabasesAsync()
- 請注意配置中的 AllowAdmin 標志必須為真)。該方法存在于IServer
接口中,可以從中檢索IConnectionMultiplexer
。如果您使用的是StackExchange.Redis
DI,IDistributedCache
目前還無法這樣做。您可以使用System.Reflection
從IConnectionMultiplexer
.(RedisCache)IDistributedCache
- 2 回答
- 0 關注
- 253 瀏覽
添加回答
舉報
0/150
提交
取消