Web API的缓存策略

时间:2016-11-01 10:34:47

标签: c# asp.net asp.net-web-api memorycache

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

  1. 后端的ASP.NET Web API。
  2. HTML,CSS和JavaScript(特别是KnockoutJS)
  3. 在内部我使用MemoryCache类。假设我想让用户能够添加/编辑/删除博客帖子。将包含所有博客文章的JSON保存到缓存中是一个好习惯吗?在现实世界中,会有大量的帖子,因此缓存的序列化/反序列化可能会成为一项昂贵的操作。另外,支持这些项目分页的最佳方法是什么?提前感谢您的帮助。

1 个答案:

答案 0 :(得分:6)

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

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

2-输出/响应缓存,这将存储在服务器内存中,服务器将接收请求,结果将立即从服务器内存返回,而不执行操作方法,有关详细信息,请参阅此链接https://docs.asp.net/en/latest/performance/caching/response.html

3-服务器端缓存,这是您正在使用的方法,缓存数据的位置,您的数据应分类为引用[未更改],活动[每个用户]和共享[用户之间]数据

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

相关问题