Pie*_*ter 5 sql-server distributed-cache .net-core
我最近开始在 dotnet core web api 上使用 IDistributedCache 的 sql 版本。
您将如何删除/使特定用户的一组密钥无效?
即:我构建了遵循此约定的密钥:
/users/{userId}/Key1
/users/{userId}/Key2
/users/{userId}/Section/Key3
Run Code Online (Sandbox Code Playgroud)
我找不到任何方法来删除以下开头的所有键:/users/{userId}
如何一次从 IDistributedCache 中删除一项以上?
通过 SQL 语句删除并不是一个好的解决方案,因为 webapp 进程执行某种锁定。例如,我必须在三分半钟后手动停止以下Delete from SqlSession只有两条记录的简单查询。
所以我最终是这样的:我用一个简单的查询来检索数据,比如
Select Id from SqlSession where Id like 'MyIdGroup%'
Run Code Online (Sandbox Code Playgroud)
或使用实体框架
var cacheElementsToDelete = await _dbContext.SQLSessions
.Where(a => a.Id.StartsWith("MyIdGroup"))
.ToListAsync();
Run Code Online (Sandbox Code Playgroud)
然后我使用 的方法IDistributedCache来删除每个项目
foreach (var item in cacheElementsToDelete)
{
await _cache.RemoveAsync(item.Id);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2233 次 |
| 最近记录: |