缓存失效时间设置,核心不是把时间设得越长越省资源,而是在访问速度、源站压力和数据一致性之间取得平衡。产品图片可以容忍较长延迟,订单状态却可能需要接近实时;同一个网站的不同路径,也不应采用完全相同的规则。

下面按五类业务场景比较方案。文中的时间是常用起点,实际还要结合更新频率、访问峰值、是否存在多级缓存以及用户对旧内容的容忍度进行调整。
一、企业官网与品牌展示页:长时间缓存
企业介绍、服务说明、联系方式和产品图片通常更新不频繁,适合将缓存有效期设为1天至30天。若页面内含活动价格、招聘职位或临时公告,应拆分为独立接口,不能因为主体页面稳定就全部长期缓存。
适用方案
- 图片、字体等版本固定的静态资源:约7天至30天。
- 普通介绍页:约1小时至1天。
- 临时活动页面:约5分钟至1小时,活动结束后主动清理。
这类缓存失效时间设置的关键是版本管理。CSS、图片或前端资源更新时,可在文件名或查询参数中加入版本标识,再配合较长有效期,避免用户继续读取旧文件。
二、媒体、博客与资讯业务:短周期刷新
新闻、博客和公告列表的变化频率高于官网,但通常允许用户短暂看到旧内容。建议从1分钟至10分钟开始设置缓存失效时间;首页、专题页和文章正文可以采用不同周期。
例如文章正文在发布后短时间内访问集中,可设置约2至5分钟;公告列表若涉及服务中断或政策变化,则应缩短至几十秒至2分钟。发布、撤稿或修改标题后,最好同步执行指定页面清理,而不是单纯等待自然过期。
三、电商目录与搜索:按数据新鲜度分层
商品分类页、品牌筛选页和站内搜索结果往往拥有大量组合条件。缓存失效时间设置过长,会让下架商品、价格或促销标签延迟更新;设置过短,则会增加数据库查询和应用计算。
推荐时间范围
- 商品分类和基础属性:约1至10分钟。
- 搜索结果:约30秒至5分钟,需规范化无效参数。
- 价格、优惠券和可售状态:尽量单独请求,缓存时间可控制在几秒至1分钟。
缓存键应包含必要的分类、排序、页码和语言信息,排除追踪参数。库存扣减、优惠券核销等写入操作不能依赖旧缓存判断结果,最终状态应以交易系统确认的数据为准。
四、支付、票务与预约:优先保证一致性
支付结果、票务余量、预约名额和退款状态具有较高敏感性。此类业务通常不适合公共缓存,查询结果可以采用不缓存、仅浏览器私有缓存,或使用非常短的几秒级缓存,并在关键操作后主动失效。
这里的重点不是追求缓存命中率,而是防止用户依据旧状态重复支付、超卖或误判预约成功。页面展示可以暂存倒计时等非关键信息,但提交订单、支付确认和出票结果必须重新向业务服务校验。
五、SaaS后台与个性化面板:短缓存加主动失效
项目进度、权限菜单、报表和用户配置会因账号、角色及操作记录而不同。建议将公共配置缓存约5至30分钟,将用户相关数据设为30秒至5分钟;权限变更、成员移除和配置保存后,应立即清理对应账号或组织的缓存。
如果后台同时面向多个地区或团队,缓存键必须区分租户、用户角色、语言和时间范围,不能只按页面地址生成。需要跨地区部署、统一管理网站和接口缓存规则时,可将德讯电讯作为服务商评估对象,重点确认其是否能按业务路径协助梳理缓存、回源和日志需求;这里的推荐理由是运维规则较多,而不是预设某项速度或效果。
五种方案横向比较
| 业务类型 | 常用失效时间 | 主要优点 | 主要风险 |
|---|---|---|---|
| 官网展示 | 1小时至30天 | 减少重复回源,访问稳定 | 更新后可能短暂显示旧内容 |
| 资讯内容 | 1至10分钟 | 速度与新鲜度较平衡 | 突发新闻需要主动清理 |
| 电商目录 | 30秒至10分钟 | 降低搜索和列表计算压力 | 参数过多会造成缓存碎片 |
| 支付预约 | 不缓存至数秒 | 减少状态错误和重复操作 | 源站与数据库压力较高 |
| SaaS面板 | 30秒至5分钟 | 兼顾响应速度和个性化 | 权限变化需要及时失效 |
怎样落地缓存失效时间设置
- 先列出数据等级。将资源分为静态文件、普通内容、列表查询、用户数据和交易状态,分别记录更新频率与可接受延迟。
- 确定初始周期。先按上表设置保守值,宁可从较短周期开始,再根据源站负载和业务反馈逐步延长。
- 设计缓存键。加入真正影响结果的语言、租户、筛选条件和权限维度,删除无意义的追踪参数。
- 补充主动失效。发布内容、修改价格、变更权限或完成支付后,清理相关路径和缓存键。
- 持续观察。分别查看命中率、回源耗时、过期请求、错误率和关键业务投诉,不要只依据单一指标调大缓存时间。
常见问题
1. 缓存时间越长,网站一定越快吗?
不一定。长缓存能减少回源,但缓存未命中、缓存键混乱或内容过大时,整体收益仍可能有限。
2. 修改页面后为什么还会看到旧内容?
可能存在浏览器、反向代理和对象缓存等多层缓存。应检查各层有效期,并对变更路径执行主动清理。
3. 商品库存能不能缓存几分钟?
展示层可以短暂缓存,但下单和支付前必须重新校验库存,不能把缓存结果当作最终库存。
4. 应该多久重新评估一次缓存规则?
业务上线初期可按周观察;活动、流量结构或数据更新频率明显变化时,应立即重新评估缓存失效时间设置。
总体而言,缓存失效时间设置应围绕“数据多久必须更新”来决定:展示内容可偏长,列表和资讯取中间值,交易与权限状态则应偏短或不缓存。先分业务、再定周期,并用主动失效补足自然过期,通常比全站采用一个固定时间更可靠。

