Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Caching API应该更关注于缓存以提高响应时间,还是应该更关注于降低所需的请求数?_Caching_Architecture - Fatal编程技术网

Caching API应该更关注于缓存以提高响应时间,还是应该更关注于降低所需的请求数?

Caching API应该更关注于缓存以提高响应时间,还是应该更关注于降低所需的请求数?,caching,architecture,Caching,Architecture,因此,我们有一个API,它有大量可缓存的项目,如文章和产品,但每个项目都可以附加用户特定的数据,如收藏夹和特定的计算值,并且它已经允许对每个列表端点进行过滤和排序。您需要在访问API之前进行身份验证 我们目前在API中有两种不同的数据检索方式: 通过博客帖子,我们可以获得博客以及用户特定的is_Favorite和friends_Favorite数据。这不是缓存的,因为它对每个用户都是唯一的 使用store products,我们从一个端点取回产品,从另一个端点取回喜爱的产品,从而允许我们缓存产

因此,我们有一个API,它有大量可缓存的项目,如文章和产品,但每个项目都可以附加用户特定的数据,如收藏夹和特定的计算值,并且它已经允许对每个列表端点进行过滤和排序。您需要在访问API之前进行身份验证

我们目前在API中有两种不同的数据检索方式:

  • 通过博客帖子,我们可以获得博客以及用户特定的is_Favorite和friends_Favorite数据。这不是缓存的,因为它对每个用户都是唯一的

  • 使用store products,我们从一个端点取回产品,从另一个端点取回喜爱的产品,从而允许我们缓存产品


现在是统一这些标准的时候了,我们不确定该走哪条路。降低请求数是否更重要(减少缓存并可能增加服务器成本),拥有可缓存数据是否更好(增加响应时间并希望以牺牲多个请求为代价增加服务器成本)?

没有更好的方法

如果客户端总是同时请求一些api,那么为一个请求而不是多个请求创建组合api可能是合理的

如果客户端单独请求一些API,那么缓存会更好

但这些方式并不是相互排斥的。我们使用API中的所有机制来提高速度


在您的示例中,产品有自己的缓存,但对于每个用户,用户数据可能也有缓存,而更改用户数据的事件可能会使缓存无效。您的api只是将两个缓存中的数据与一些逻辑结合起来。

该死,我真的希望得到一个答案:)我想我们的问题是不知道未来会发生什么,因此,我们只能模糊地预测未来的应用程序将如何使用我们的API