所以我有一组数据,可以用多种方式从第三方来使用。目前他们的API不是很好,服务不是很好。
我在想的是缓存他们的响应,因为它不经常改变一周一次,我面临的问题是,我如何缓存?就数据而言,它在不同的上下文中使用,每次需要不同的数据片段。
例如
我有一个列表的汽车(使,模型。发动机大小),这些汽车可以要求无论是使,模型,发动机大小。
我可以使用redis来缓存数据,然后在前面创建一个服务,可以使用以下方法之一来定期更新该高速缓存:
我可以保持该高速缓存的数据重复,例如,我可以保持一个按品牌分组的汽车数据缓存,另一组按大小分组的数据缓存。该高速缓存中存在数据重复。但这有关系吗?
或者我可以只缓存整个数据集,每次请求分组数据集时,让前面的服务处理数据并提取组?
有人有什么主意吗?
1条答案
按热度按时间ttcibm8c1#
按品牌分组的汽车与按大小分组的汽车不同,它们是不等价的关系。
如果您一次又一次地重用它们,那么将它们都缓存起来是有意义的。
然而,缓存整个表的目的失败的表摆在首位。为什么你使用数据库表的原因是为了让您可以有效地搜索。如果你复制整个表,那么你失去了所有的好处,你的数据库管理系统,你是在你自己。
如果在汽车表中有100 000 000条记录,则品牌和大小的数量仍然非常有限,因此可以根据这些聚合条件以及其他聚合字段沿着缓存组。
问问你自己:知道有多少人是非洲人和知道有多少人是1.75 - 1.80米的人是一样的吗?当然不是。即使数据源相似,但通过聚合从它们生成的关系是不同的。