缓存层
一句话:把常用但不常变的数据提前存在读取更快的地方(如内存),避免每次都重新计算或查数据库,提升响应速度。
它是什么
缓存的核心思路是"用空间换时间":一些数据获取/计算成本高但短期内不会变化(比如首页统计数字、不常更新的配置),第一次算好后存起来,之后的请求直接读缓存,不用重复走一遍耗时的流程。
适合干什么
- 频繁读取但不常变化的数据
- 计算成本高的统计类数据展示
- 减轻数据库压力
不适合干什么
- 数据需要绝对实时准确的场景(比如库存扣减、金融交易余额,缓存可能导致读到过期数据引发问题)
普通人怎么用
理解基本流程:先查缓存有没有数据→有就直接返回(缓存命中)→没有就查真实数据源,算好后存进缓存再返回(缓存未命中);给缓存设置合理的过期时间,避免数据永久不更新。
进阶用户怎么用
要考虑缓存和真实数据不一致的问题(缓存穿透、缓存击穿、缓存雪崩这几个经典场景),根据业务场景选择合适的缓存更新策略(定时刷新、写入时主动更新缓存、设置合理过期时间)。
常见误区
- 以为加了缓存就一劳永逸,没考虑数据更新后缓存没同步导致用户看到旧数据的问题
- 所有数据都无脑加缓存,实际频繁变化的数据加缓存反而增加了复杂度却没有收益
和相似工具的区别
- 和CDN缓存的区别:CDN缓存的是静态资源(图片、JS/CSS),分布在全球节点;这里说的缓存层通常指应用内部或Redis这类缓存服务,缓存的是动态计算结果或数据库查询结果
入门步骤
- 找出访问频繁但更新不频繁的数据
- 选择缓存方案(内存缓存或Redis等)
- 设置合理的过期时间和更新策略