.NET 9 HybridCache 9.3.0版本RemoveByTagAsync方法Redis环境失效问题咨询
RemoveByTagAsync在Microsoft.Extensions.Caching.Hybrid 9.3.0 Redis环境下的已知问题
是的,Microsoft.Extensions.Caching.Hybrid 9.3.0版本的RemoveByTagAsync方法在Redis作为后端缓存时确实存在已知的功能故障,会出现调用方法传入标签后缓存项仍未被移除的情况。
问题原因
该版本的标签索引同步逻辑存在缺陷:当缓存项写入Redis时,标签与对应缓存键的关联关系没有被正确持久化到Redis的存储结构中,导致后续调用RemoveByTagAsync时无法通过标签定位到需要删除的缓存项。
临时解决方案
- 降级到
Microsoft.Extensions.Caching.Hybrid9.2.0版本,该版本的标签移除逻辑在Redis环境下可正常工作 - 若无法降级,可手动维护标签与缓存键的映射(比如单独用一个Redis Hash结构存储标签到键列表的映射),需要移除时先通过映射获取所有关联键,再调用
RemoveAsync逐个删除对应缓存项
内容的提问来源于stack exchange,提问作者Myles J
相关产品推荐
相关产品推荐

