欢迎访问 内存溢出 —— 独立后端与系统工程技术博客

专注于分布式系统、Linux内核、数据库存储与后端工程实践

Redis 分布式缓存:缓存穿透、击穿与雪崩治理

发表于:|最后更新:|分类:数据库与存储|阅读:5045 次
本文标签:高可用Redis缓存

缓存是高并发系统的性能基石,但设计不当会引发三类典型故障,需针对性治理。

一、三类问题对比

问题 成因 后果 治理手段
缓存穿透 查询不存在的数据 请求直达数据库 布隆过滤器、空值缓存
缓存击穿 热点 Key 过期瞬间 大量请求打到数据库 互斥锁重建、逻辑过期
缓存雪崩 大量 Key 同时过期 数据库瞬时过载 过期时间加随机抖动、多级缓存

二、布隆过滤器示例

python
from redis import Redis
from redisbloom.client import Client

rb = Client(host='localhost')
rb.bfCreate('users', 0.01, 1000000)
rb.bfAdd('users', 'user:123')
if rb.bfExists('users', 'user:456'):
    # 可能存在,继续查缓存与数据库
    pass

布隆过滤器以极小内存代价拦截不存在的 Key,但存在误判率,需结合空值缓存兜底。