面试题答案
一键面试确定适合缓存的API响应
- 数据变化频率低:如网站的静态配置信息API,像站点的基本介绍、版权声明等,这些内容长时间不会变动,适合缓存。例如一个电商网站展示的关于公司的“关于我们”页面的API数据,几个月甚至几年都不会改变,缓存此类API响应可显著提升性能。
- 读多写少:商品详情API,多数情况下用户只是浏览商品信息,商家修改商品信息频率相对较低。以手机销售网站为例,一款手机发布后,大部分时间是用户在查询其参数、价格等信息,而商家更新价格或参数的操作较少,这种读多写少的API适合缓存。
- 非个性化内容:比如热门新闻列表API,对所有用户展示内容相同,不受用户个人偏好或登录状态影响。像新闻资讯网站的首页新闻滚动条数据,所有访客看到的内容一致,缓存该API响应可有效减轻后端压力。
设置合理的缓存过期时间
- 根据数据变化频率:对于变化频率低的数据,如前面提到的“关于我们”页面API,可设置较长的缓存过期时间,比如一周甚至一个月。而对于商品价格这类变化相对频繁的数据,缓存过期时间可设短些,如几分钟到几小时,例如限时促销的商品价格,每小时检查一次缓存是否过期并更新。
- 使用滑动过期时间:对于一些经常被访问的数据,可采用滑动过期时间策略。比如热门商品的评论API,每次访问时延长其缓存过期时间。假设最初设置过期时间为10分钟,每次有用户获取评论时,将过期时间延长至距离当前时间10分钟后,这样能在保证数据一致性的同时,提高缓存命中率。
- 结合业务场景:在秒杀活动场景下,商品库存API缓存过期时间要极短,甚至可以不缓存,因为库存数据实时变化。而在活动预热阶段,商品基本信息API可设置相对较长的缓存时间,如一天,因为此时商品信息基本不会变动。