在 Web API 中为分布式缓存(基于 SQL 服务器)实现缓存标记 headers 的最佳方法是什么
What is the best way to implement Cache tag headers for Distributed cache( based on SQL server ) in Web API
有像
这样的缓存标签属性
- vary-by-query
- vary-by-route
- vary-by-cookie
- vary-by-user
- vary-by 优先级
可以直接在 CSHTML 中用于 MVC。
对于使用 IDistributedCache 实现的缓存机制,在 ASP.netCore 中实现相同目标的最佳实现是什么?
IDistributedCache
中没有 vary 的概念。缓存标签 attributes/response 缓存通常是作为请求管道的一部分实现的。虽然您可以在请求管道中使用 IDistributedCache
,但它不是该管道的 部分 ,并且本身无法访问请求中的任何内容。
您可以通过要添加的条目的键在某种程度上实现这一点。例如,如果您想改变登录用户的缓存,只需在所有键前加上 $"User{userId}"
之类的前缀。因为文本键将因用户而异,因此缓存显然也是如此。然而,这都是手动操作。您需要决定如何构造键并在使用缓存时在您的应用程序代码中实际实现它。
有像
这样的缓存标签属性- vary-by-query
- vary-by-route
- vary-by-cookie
- vary-by-user
- vary-by 优先级
可以直接在 CSHTML 中用于 MVC。
对于使用 IDistributedCache 实现的缓存机制,在 ASP.netCore 中实现相同目标的最佳实现是什么?
IDistributedCache
中没有 vary 的概念。缓存标签 attributes/response 缓存通常是作为请求管道的一部分实现的。虽然您可以在请求管道中使用 IDistributedCache
,但它不是该管道的 部分 ,并且本身无法访问请求中的任何内容。
您可以通过要添加的条目的键在某种程度上实现这一点。例如,如果您想改变登录用户的缓存,只需在所有键前加上 $"User{userId}"
之类的前缀。因为文本键将因用户而异,因此缓存显然也是如此。然而,这都是手动操作。您需要决定如何构造键并在使用缓存时在您的应用程序代码中实际实现它。