【问题标题】:Caching strategy for Web APIWeb API 的缓存策略
【发布时间】:2016-11-01 10:34:47
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

    缓存 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,因为它提供了更多功能,并且如果您有一个网络场,它会表现出色,因为它是一个分布式缓存解决方案,更多详情见此链接https://azure.microsoft.com/en-us/documentation/articles/cache-dotnet-how-to-use-azure-redis-cache/

    【讨论】:

    • 感谢您提供有用的资源。
    猜你喜欢
    • 2020-06-11
    • 2010-10-06
    • 1970-01-01
    • 2010-10-26
    • 1970-01-01
    • 2012-09-05
    • 2020-08-03
    • 2011-11-12
    • 2011-01-18
    相关资源
    最近更新 更多