Web API的缓存策略

Gio*_*zas 1 c# asp.net memorycache asp.net-web-api

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

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

在内部我使用MemoryCache类.假设我想让用户能够添加/编辑/删除博客帖子.将包含所有博客文章的JSON保存到缓存中是一个好习惯吗?在现实世界中,会有大量的帖子,因此缓存的序列化/反序列化可能会成为一项昂贵的操作.另外,支持这些项目分页的最佳方法是什么?预先感谢您的帮助.

Hai*_*dad 7

缓存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/