我们做了很多 REST 调用,并希望缓存其中的大部分调用。我们目前的选择是什么?Core 目前不支持输出缓存,那么我们可以使用响应缓存或分布式缓存吗?如果是Response Caching,Kestrel前面的IIS反向代理可以用于Response Caching的场景吗?谢谢!
问问题
599 次
1 回答
1
ASP.NET Core 支持响应缓存。
缓存帮助程序标记支持 Razor 视图的输出缓存- 但这对 REST 调用没有帮助。
Distributed Caching或InMemory Caching是一种存储信息的好方法,从持久性级别检索这些信息需要耗费大量成本。这将在服务级别上对您有所帮助,但对输出缓存没有帮助(当然,如果您愿意,您可以做一些自己的中间件)。Cache Helper Tag 也依赖于这些技术。
因此,REST 调用的缓存输出归结为Response Caching。简而言之,这是关于如何Cache-Control
在响应中设置标头。如果您在控制器(或) 的注释中选择ResponseCacheLocation.Any
as ,则公共用作 Cache-Control 并且允许反向代理缓存响应。但是我没有尝试过,如果在 IIS 和 Kestrel 的组合中是这种情况。Location
ResponseCache
CacheProfile
这篇博客文章也是关于这个主题的有趣读物。
于 2016-09-13T15:57:54.197 回答