返回知识库数据与服务 · 服务与数据
缓存Cache
缓存是放在慢数据前面的易失副本:命中就秒回,未命中才回源;写操作后要主动失效。
先认出这张桌上便签,再决定什么时候撕
下面就是放在慢柜子前面的那张副本。默认命中 v12、2ms。改了源却不撕,便签仍写旧版;撕掉再读,才取回 v13。
桌上便签 · GET /articles/7HIT · 2 ms文章 #7 · v12
REST 资源建模
柜子没被碰
HIT · 2 ms:命中或写回都长在这张纸条上。
原因:可重建的副本放在慢柜子前面,命中就不用回源。下一步:试「改了源却不撕纸条」,看旧版怎样留在桌上。
知识点:缓存是能重建的易失副本
便签上的版本已经演示了核心关系,这里只给可复用的命名。
- 命中:纸条还在,直接返回,不碰数据库。
- 未命中:回源取真值,再写回便签,下次才能秒回。
- 写后要失效:源变了却不撕,读者会一直拿到旧版。
- 和数据库的边界:库是认账的真数据;缓存丢了可以重建。
什么时候用、怎么用
同一份公开数据被反复读、源又慢或贵时,才在前面放缓存。
- 信号:热门文章、配置、不常改的列表,读远多于写。
- 适用:可重建、可短暂旧、能接受失效策略的数据。
- 不适用:用户私有余额、必须立刻一致的库存——别共用一张便签。
- 最短路径:读先看便签 → 空了回源写回 → 写源后主动撕掉或短 TTL。
正反例:同一篇刚改过的文章,只换撕不撕
目标都是让读者看到新标题,只改更新后是否失效。
下次是 MISS,回柜取 v13 再贴回。读者看到新稿。
命中率很高,但读到的仍是 v12。旧版写在便签上。
快速自测
编辑刚改了文章标题,列表里有人仍看到旧标题。先查什么?
继续查证
术语的技术定义和行为以这些一手或权威资料为准。