设计一个键-值缓存来存储最近 web 服务查询的结果 注意:这个文档中的链接会直接指向系统设计主题索引中的有关部分,以避免重复的内容。你可以参考链接的相关内容,来了解其总的要点、方案的权衡取舍以及可选的替代方案。 第一步:简述用例与约束条件 搜集需求与问题的范围。 提出问题来明确用例与约束条件。 讨论假设。 我们将在没有面试官明确说明问题的情况下,自己定义一些用例以及限制条件。 用例 我们将把问题限定在仅处理以下用例的范围中 用户发送一个搜索请求,命中缓存 用户发送一个搜索请求,未命中缓存 服务有着高可用性 限制条件与假设 提出假设 网络流量不是均匀分布的 经常被查询的内容应该一直存于缓存中 需要确定如何规定缓存过期、缓存刷新规则 缓存提供的服务查询速度要快 机器间延迟较低 缓存有内存限制