跳转到主要内容

标签: 高可用

  • Redis 缓存设计

    发布于 Redis

    Redis缓存高可用

    引入缓存能显著降低数据库压力,但设计不当会引入穿透、击穿、雪崩等经典问题。下面逐一拆解成因与对策。 三大经典问题 缓存穿透:查询不存在的数据,缓存与数据库都查不到,请求每次都打到 DB。应对:缓存空值(短过期)、布隆过滤器拦截非法 key。 缓存击穿:某个热点 key 过期瞬间,大量并发同时回源 DB。应对:互斥锁(只放一个线程重建)、逻辑过期(异步刷新)、热点 key 不过期。 缓存雪崩:大量 key 同一时刻集中失效,或 Redis 整体不可用,DB 被冲垮。应对:过期时间加随机抖动、多级缓 …

    引入缓存能显著降低数据库压力,但设计不当会引入穿透、击穿、雪崩等经典问题。下面逐一拆解成因与对策。 三大经典问题 缓存穿透:查询不存在的数据,缓存与数据库都查不到,请求每次都打到 DB。应对:缓存空值(短过期)、布隆过滤器拦截非法 key。 缓存击穿:某个热点 key 过期瞬间,大量并发同时回源 DB。应对:互斥锁(只放一个线程重建)、逻辑过期(异步刷新)、热点 key 不过期。 缓存雪崩:大量 key 同一时刻集中失效,或 Redis 整体不可用,DB 被冲垮。应对:过期时间加随机抖动、多级缓 …