前阵子被缓存结结实实摆了一道。它本是我们请来加速的宾客,满面春风,哪晓得某天竟成了最安静的叛徒,loyalty 在代码里比人情还难测。
有回热点 key 在零点集体 expire,瞬间的请求像退潮后裸露的礁石,齐刷刷砸向数据库,这便是缓存击穿,温柔得近乎残忍。更隐秘的是另一种背叛:你兢兢业业更新了 database,却忘了顺手 evict 那行 cache,后来的读请求便笑眯眯捧回旧值,数据早已南辕北辙,谁也没察觉。
最磨人的是本地缓存。改了配置,服务却像睡熟的人,怎么唤都不醒,最后只能 restart 解千愁,这 feeling 和重启一段旧关系莫名相似。嗯…
“此情可待成追忆”,缓存的伤复盘时总比回忆锋利。写代码这几年,愈发觉得 trust 很贵,verify 更贵,sounds about right.