【问题标题】:Asp Net web api 2 response caching (server side)Asp Net web api 2 响应缓存(服务器端)
【发布时间】:2019-09-26 03:23:54
【问题描述】:

是否可以在服务器端缓存一旦产生的响应,然后重新传递它以响应相同的请求? 让我解释: 我有一个 endloint 需要大约 5 秒来生成响应 - 这包括进入数据库并获取数据、处理它、对其执行一些计算、重新实现和压缩响应 - 整个过程需要 5 秒。 第一次完成此操作后,我希望结果可用于来自所有用户的所有请求。 在我看来,客户端缓存,当您将结果缓存在客户端并且在一段时间内根本不访问服务器时,或者当您访问服务器但获得 304 未更改而不是数据时不够好。 我想要的是点击服务器,如果这个端点(具有相同的参数集)已经被任何人调用,那么得到完整的响应。有可能吗?

【问题讨论】:

标签: c# caching asp.net-web-api server http-caching


【解决方案1】:

您有多种选择。

一个选项是 API 级缓存,您使用生成响应所需的参数创建一个密钥,然后获取数据并将该对保存在缓存中。然后下次有请求进来时,您重新创建密钥并首先检查您的缓存。有的话,开心就好,退货,没有的话,去拿来保存。

这当然取决于您拥有的数据量,太多数据或太大数据,这将不起作用。您也可以将其存储一段时间,例如 10 分钟、1 小时等。

如果您有大量数据并且无法进行这样的缓存,请考虑其他方式。也许创建你自己的 no-sql 缓存存储(可能使用 MongoDB 之类的东西),存储它并从那里检索它,不需要任何更改,所以它是直接检索,因此非常快。

你也可以使用 Redis Cache 之类的东西。 很多选项,只要选择合适的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-09
    • 2013-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 2012-07-05
    相关资源
    最近更新 更多