MST

星途 面试题库

面试题:缓存设计之中等难度:缓存与API网关协同优化的基本策略

在后端开发中,缓存与API网关协同优化时,常见的缓存基本策略有哪些,例如如何确定哪些API响应适合缓存,以及怎样设置合理的缓存过期时间来平衡数据一致性和缓存命中率?请阐述你的理解并举例说明。
16.8万 热度难度
后端开发缓存设计

知识考点

AI 面试

面试题答案

一键面试

确定适合缓存的API响应

  1. 数据变化频率低:如网站的静态配置信息API,像站点的基本介绍、版权声明等,这些内容长时间不会变动,适合缓存。例如一个电商网站展示的关于公司的“关于我们”页面的API数据,几个月甚至几年都不会改变,缓存此类API响应可显著提升性能。
  2. 读多写少:商品详情API,多数情况下用户只是浏览商品信息,商家修改商品信息频率相对较低。以手机销售网站为例,一款手机发布后,大部分时间是用户在查询其参数、价格等信息,而商家更新价格或参数的操作较少,这种读多写少的API适合缓存。
  3. 非个性化内容:比如热门新闻列表API,对所有用户展示内容相同,不受用户个人偏好或登录状态影响。像新闻资讯网站的首页新闻滚动条数据,所有访客看到的内容一致,缓存该API响应可有效减轻后端压力。

设置合理的缓存过期时间

  1. 根据数据变化频率:对于变化频率低的数据,如前面提到的“关于我们”页面API,可设置较长的缓存过期时间,比如一周甚至一个月。而对于商品价格这类变化相对频繁的数据,缓存过期时间可设短些,如几分钟到几小时,例如限时促销的商品价格,每小时检查一次缓存是否过期并更新。
  2. 使用滑动过期时间:对于一些经常被访问的数据,可采用滑动过期时间策略。比如热门商品的评论API,每次访问时延长其缓存过期时间。假设最初设置过期时间为10分钟,每次有用户获取评论时,将过期时间延长至距离当前时间10分钟后,这样能在保证数据一致性的同时,提高缓存命中率。
  3. 结合业务场景:在秒杀活动场景下,商品库存API缓存过期时间要极短,甚至可以不缓存,因为库存数据实时变化。而在活动预热阶段,商品基本信息API可设置相对较长的缓存时间,如一天,因为此时商品信息基本不会变动。