首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Asp.net Core中使用<distributed>标记助手时如何关闭缓存或获取缓存密钥

在Asp.net Core中使用<distributed>标记助手时如何关闭缓存或获取缓存密钥
EN

Stack Overflow用户
提问于 2021-07-05 23:51:39
回答 1查看 267关注 0票数 0

<distributed-cache>标记和Redis有问题。

我们有一个<partial> Razor视图,它显示长期运行的查询的结果。我们使用@inject从注入的服务中获取数据。数据很少更新,因此我们使用一个长的<distributed-cache>属性将内容包装在一个expires-after标记助手中。

但是,当数据最终被更新时(在我们的应用程序的另一部分中),我们需要从分布式缓存中删除该键,以强制页面在下一次执行时更新。(我们不可能预测数据何时会改变--我们只能对外部事件做出反应。)

我们遇到的问题是,尽管有一个固定的name属性,但缓存键似乎无法预测。例如,<distributed-cache name='_myQuery' vary-by-user='true'>按照Redis中的7/za/Bc/ZRn/MsR/hG69TYTx1LEzqBvlyH1OLJgrpk4=创建了一个关键内容。

我怎样才能做到:

  1. 预测/计算在redis中缓存键将是什么,这样我就可以在应用程序的另一部分中删除它?
  2. 强制<distributed-cache>标记忽略缓存的值这一次?我知道我们有enabled属性,因为这不能工作,因为页面不知道什么时候使缓存失效。
EN

回答 1

Stack Overflow用户

发布于 2021-07-06 20:10:31

在深入研究ASP.NET核心源之后,我找到了包含GenerateKey()GenerateHaskedKey()方法的CacheTagKey.cs文件。这些方法从一组参数创建密钥,然后SHA256对键进行散列并返回base64。

所以看起来我可以用它来预测缓存密钥并解决这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68263076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档