02数据存储约 7 分钟
关系型数据库与缓存:数据应该放在哪里?
数据库通常承担可靠保存和一致更新的职责;缓存则把近期常用的数据放在更快读取的位置。两者不是替代关系,而是有不同的工作边界。
先明确谁是事实来源
用户资料、订单状态等需要可靠持久化的数据,通常由数据库作为事实来源。缓存可以保存这些数据的副本,减少重复查询,但副本可能过期或被淘汰。写入时应先确定更新顺序和失败后的处理办法。
缓存适合解决什么问题
- 某些读取频繁、计算成本较高的数据。
- 可以接受短暂旧值,或有明确失效策略的数据。
- 经过观测确认,数据库查询确实是当前性能瓶颈的场景。
常见的 Cache-Aside 模式
读取时先查缓存;未命中再读数据库并回填。更新时先写数据库,再删除缓存,让下一次读取重新加载。具体顺序仍要结合并发与一致性要求来决定。
缓存会带来额外状态、失效策略和故障路径。先测量问题,再增加缓存,通常更容易保持系统简单。