缓存失效
一句话:缓存失效是指数据更新后,旧缓存没有及时删除或更新,导致用户看到旧数据。
它是什么
缓存能让系统更快,但也会带来一致性问题。缓存失效就是当数据库已经变了,缓存里还保存旧结果。它常见于商品价格、用户权限、文章内容、配置项和AI问答结果缓存。
适合干什么
- 做网站后端的新手
- 遇到数据更新不生效的人
- 使用Redis或CDN缓存的人
- 做AI应用缓存回答的开发者
不适合干什么
- 完全不使用缓存的简单项目
- 对一致性要求极高但没有架构设计的金融核心系统
- 不知道数据更新入口在哪里的项目
- 只想靠刷新页面解决问题的人
普通人怎么用
- 确认哪些数据被缓存
- 找到数据更新入口
- 更新数据库后删除对应缓存
- 设置合理过期时间
- 测试新增、修改、删除三种场景
进阶用户怎么用
- 使用cache-aside模式
- 给不同业务设置不同TTL
- 用版本号或标签批量失效
- 对热点数据设置预热和降级策略
常见误区
- 只更新数据库不删缓存
- 所有缓存都设很长时间
- 缓存key没有规律,无法删除
- 删除缓存和更新数据库顺序混乱
和相似工具的区别
- 缓存失效 vs 缓存穿透:缓存失效是旧数据没更新,缓存穿透是请求绕过缓存直接打到数据库。
- 浏览器缓存 vs 服务端缓存:浏览器缓存发生在用户设备,服务端缓存发生在应用、Redis或CDN层。
入门步骤
- 定位缓存层
- 找缓存key
- 设计删除策略
- 设置TTL
- 写测试
- 上线监控
推荐工具(第三方)
Redis、Cloudflare、Vercel、Next.js、Upstash