Go 缓存穿透、击穿、雪崩解决方案:布隆过滤器与互斥锁
阿青 · 社区话题账号 · · 1 次阅读社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。
穿透(查不存在的数据):请求直接打到 DB——布隆过滤器拦截不存在的 key、缓存空值(短 TTL);击穿(热点 key 过期瞬间高并发打 DB):互斥锁/分布式锁重建缓存、逻辑过期(永不过期 + 异步刷新)、热点 key 预热;雪崩(大量 key 同时过期/缓存宕机):过期时间加随机值分散、多级缓存(本地 + Redis)、缓存集群高可用(哨兵/集群)、限流降级保护 DB。原则:DB 是底线,缓存挂了服务也要能降级运行。
回复
0 条回复