Web 的缓存策略 API

Caching strategy for Web API

我正在使用以下技术开发一个小型博客应用程序:

  1. ASP.NET Web API 用于后端。
  2. HTML、CSS 和 JavaScript(特别是 KnockoutJS)

我在内部使用 MemoryCache class。假设我想让用户能够 add/edit/remove 博客帖子。将包含所有博客文章的 JSON 从数据库保存到缓存是一个好习惯吗?在现实世界中,会有大量的帖子,因此 serialization/deserialization 缓存可能成为一项昂贵的操作。另外,支持这些项目分页的最佳方式是什么?预先感谢您的帮助。

缓存 Web API 结果的方法不止一种。

1- HTTP缓存,这是你在HTTP级别设置缓存的地方,浏览器或Ajax请求将缓存REST调用的输出,不会从服务器请求它,有一些库来处理这个,例如:CacheCow.Server,请参阅此 link 了解更多详细信息 http://www.hanselman.com/blog/NuGetPackageOfTheWeekASPNETWebAPICachingWithCacheCowAndCacheOutput.aspx

2- Output/Response 缓存,这个会保存在服务器内存中,请求会被服务器接收并立即从服务器内存中返回结果,而不执行action方法,看这个link 了解更多详情 https://docs.asp.net/en/latest/performance/caching/response.html

3- 服务器端缓存,这是您正在使用的方法,您在其中缓存数据,您的数据应分类为参考[未更改]、Activity[每个用户] 和共享[用户之间]数据

您正在使用 MemoryCache 对象来缓存结果,这是一个不错的选择,但我建议您看看 RedisCache,因为它提供了更多功能,如果您有网络场,因为它是分布式缓存解决方案,请参阅此 link 了解更多详细信息 https://azure.microsoft.com/en-us/documentation/articles/cache-dotnet-how-to-use-azure-redis-cache/