一杯咖啡的时间,聊聊技术与成长
雪崩:同一夜失效的所有缓存
击穿是一个 key 的意外,雪崩是一批 key 的集体事故——同一时刻大量 key 集中到期,或者 Redis 整体宕机,全部读流量一瞬间涌向数据库。TTL 打散是预防针,本地缓存是缓冲垫,限流降级是止血带,高可用才是根治手术。
击穿:爆款过期的那一秒
热点 key 过期的瞬间,成千上万个并发请求同时未命中、同时回源——同一份数据的重建请求把 DB 打了一梭子。互斥重建让一个人排队干活,逻辑过期让旧值先顶一会儿:一个求准,一个求稳,爆款必须想清楚选哪个。
穿透:查一个不存在的商品
缓存挡的是「查得到」的流量,可攻击者专发「查不到」的 id——缓存永远未命中,DB 替缓存挨了全部子弹。空值缓存、布隆过滤器、入口校验,三件武器各管一段:一个便宜,一个彻底,一个治本。
Cache Aside:最经典的读写模式
读先走缓存、未命中回源;写先更新库、再删缓存——Cache Aside 四句话就说完了,但「为什么是删而不是更」「为什么先库后缓存」这两个问题的答案里,藏着并发与懒加载的全部心思。最经典的模式,值得最认真地讲一遍。
3 秒的商品详情:性能问题为什么先找缓存
商品详情接口查五次库 RT 三秒,DB 的 CPU 天天飘红——读写比 99:1 的场景,第一步该动缓存而不是先磨 SQL。缓存用内存空间和一层新的复杂度换时间,这笔交易怎么算、代价怎么付,是整个系列的主线。
Redis 缓存实战:穿透、击穿、雪崩一次讲清楚
缓存三大经典问题的成因、解决方案与代码落地。不只是背八股,而是从实际踩坑出发,讲清楚每个方案在什么场景下该用、什么时候是过度设计。
收官复盘:一张作战地图串起整个系列
系列收官:一张「出事翻哪篇」的症状索引表、一条按生命周期的阅读路径、三条贯穿始终的心法,以及一份可以贴进团队的上线检查清单。
热 key:当所有流量涌向同一个 key
40 万 QPS 涌向同一个 key,Cluster 帮不上忙、从库加不过来。聊聊热 key 的探测三招、key 打散与本地缓存的组合拳,以及限流降级的兜底。
性能优化:keys 是毒药,Pipeline 是解药
一条 keys 命令怎么拖垮整个生产环境?聊聊单线程模型的性能大局观、O(N) 命令的安全替代、Pipeline 的批量魔法,以及慢查询日志的读法。