Skip to main content
 首页 » 编程设计

c#之Web API 的缓存策略

2024年01月24日30over140

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

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

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

请您参考如下方法:

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

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

2- Output/Response Caching,这将被存储在服务器内存中,请求将被服务器接收,结果将立即从服务器内存中返回,而不执行操作方法,请参阅此链接了解更多详细信息https://docs.asp.net/en/latest/performance/caching/response.html

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

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