缓存策略
凌晨 2 点,发布刚结束,数据库连接池突然被打满,接口开始大量超时。你第一反应是数据库慢了,但打开监控一看——数据库 CPU 使用率正常,磁盘 I/O 也没有异常。问题到底在哪?
翻了半天日志才发现:缓存集群刚刚经历了一次短暂的网络抖动,所有缓存数据在短时间内集中失效。而业务代码里,虽然加了缓存,但缓存过期策略设置得过于简单——大量 key 设置了相同的过期时间。结果是缓存失效的瞬间,所有请求都穿透到了数据库。
这不是孤例。某电商大促时,因为布隆过滤器配置错误,大量不存在的商品 ID 被误判为存在,用户无法正常下单;某社交平台因为 Redis 集群主从切换,缓存雪崩导致数据库被打爆,系统整体宕机 4 小时。
缓存是性能优化的利器,但如果用不好,它也是生产事故的高发区。
本模块聚焦缓存策略的核心知识点,从缓存的基础原理出发,深入讲解穿透、击穿、雪崩三大经典问题的成因与解决方案,并系统阐述缓存一致性、淘汰策略、预热监控等生产实践要点。
模块结构
本模块按主题分为 8 个子模块:
缓存三大经典问题
核心演进路径
缓存的学习顺序建议如下:
常见认知误区
学习建议
- 从问题出发:不要一开始就背概念,想清楚「这个技术解决什么问题」
- 理解 trade-off:每种方案都有代价,缓存也不例外
- 关注边界条件:线上事故往往发生在边界条件,而不是正常流程
- 动手验证:用真实数据测试缓存命中率,理解参数调优的影响
准备好开始了吗?让我们从缓存系统的基础概念开始。