gpt4 book ai didi

caching - 当我们一次需要多个项目时,缓存会有用吗

转载 作者:可可西里 更新时间:2023-11-01 11:33:41 24 4
gpt4 key购买 nike

我们正在开发一个电子商务网站,管理员可以在该网站上存储一些配置Product-Category-manufacturerProduct-Category .

我们有一些报告,可以返回 10000 个产品的交易(具有 100-1000 个独特的 product-category-manufacturer 组合)。在这个报告中,我们还需要使用配置

  1. 一种选择是从同一存储过程中为所有唯一的产品类别制造商获取配置。

  2. 另一种选择是将所有这些组合缓存在一些外处理缓存(如 redis)中。一旦从存储过程中提取交易数据,系统将从缓存中提取所有 1000 个Product-Category-Feature 组合的数据。但在这种情况下,我们将不得不请求缓存 1000 次,如果在缓存中找不到某些键,我们将不得不访问数据库。

事实上,在数据库中不存在数据的情况下,可以有一些组合。如果我们请求这些组合,系统将不会在缓存中找到它,并且每次都必须访问数据库。要解决此问题,我们必须形成一组所有 Product-Category-Feature 组合,其中缓存中有可用数据。

有人可以建议缓存在这种情况下是否有用吗?

最佳答案

我们主要在2个场合使用缓存,

  1. 减少延迟:缓存离客户端更近,资源到达客户端所需的时间更短。
  2. 减少网络流量:大多数时候我们看到一些资源是可重用的,但总是从原始来源获取 是昂贵的,并产生更多不必要的流量。添加缓存层 解决了这个问题。

所以回答你的问题,“当我们一次需要多个项目时,缓存会有用吗?”你必须考虑以上两点。您重用了多少(缓存命中率)。以及缓存调用和调用原始源的成本差异。

如果您的问题是一次获取 1000 个项目,Redis 没有问题提供。它将比跨国数据库快得多。而且您可以拥有所有产品-类别-功能组合的集合,这更好,因为我们不会有缓存未命中。但是,在继续之前请考虑 Redis 数据库的大小。

关于caching - 当我们一次需要多个项目时,缓存会有用吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38090650/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com