文章 · 缓存
日志结构缓存的读写代价
日志结构把写入变成顺序追加,换来了极高的写吞吐,代价是读取要跨多段查找、空间要靠后台整理才能回收。
写为什么快
所有写操作都追加到文件末尾,不做原地更新,省掉了随机写的寻道成本。顺序写的吞吐通常比随机写高一个数量级。
读为什么贵
同一个键可能散落在多个段里,读的时候要从最新段往回找,命中之前可能要翻好几处。索引的质量直接决定读性能。
空间靠整理回收
追加写入会产生大量过期数据,后台需要定期把有效部分合并重写。整理策略选得不好,写入放大就会把顺序写的优势吃掉。
顺序写不是免费的,它把成本从写入挪到了读取和整理。
评论13
登录后参与评论,你的发言会署上自己的名字。
林深作者@linshen·2026-07-30
先占个位:文里的数字都是本地实测的,测试环境写在文末备注里,有疑问直接在这儿回。
于野@yuye·2026-07-31
跨包依赖没进图这个坑我们也踩过,当时查了整整两天才定位到。
秦舟@qinzhou·2026-08-01
建议再加一条:定期跑一次无缓存的全量构建做对照。
段然@duanran·2026-08-02
缓存只能加速、不能当真相,这句话值得贴在看板上。
于野@yuye·2026-08-03
我们踩过一次,缓存里的数据比库里旧了两个版本,排查了很久。
段然@duanran·2026-08-03
认同结论,但我觉得前提是团队规模够大,小团队可能撑不起这套流程。
于野@yuye·2026-08-04
真正难的不是方案本身,是让大家都愿意按方案做。