我们做了很多REST调用,并希望缓存大部分调用。我们目前的选择是什么? Core目前不支持输出缓存,因此我们可以使用响应缓存或分布式缓存吗?如果响应缓存,可以将Kestrel前面的IIS反向代理用于响应缓存方案吗?谢谢!
答案 0 :(得分:1)
ASP.NET Core支持Response Caching。
Cache Helper Tag支持Razor视图输出缓存 - 但这对REST调用没有帮助。
分布式缓存或 InMemory缓存是存储从持久性级别检索成本密集型信息的好方法。这将对服务级别有所帮助,但对输出缓存没有帮助(当然,如果你愿意的话,你可以做一些自己的中间件)。 Cache Helper Tag也依赖于这些技术。
因此,REST调用的缓存输出归结为响应缓存。简而言之,这是关于如何在响应中设置Cache-Control
标头。如果您在控制器的ResponseCacheLocation.Any
注释(或Location
)中选择ResponseCache
为CacheProfile
,则公共用作缓存控制,并允许反向代理缓存响应。但是我没有尝试过,如果在IIS和Kestrel的组合中就是这种情况。
此Blog Post也是关于此主题的有趣读物。