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

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

Redis 缓存穿透与布隆过滤器(Bloom Filter)工程实践

发表于:|最后更新:|分类:数据库与存储|阅读:6450 次

恶意请求大量查询不存在的 Key 会绕过缓存直击数据库,形成缓存穿透。在缓存层前置布隆过滤器可用极小内存代价拦截绝大多数非法查询。

布隆过滤器位数组

一、RedisBloom 模块命令

bash
# 创建容量 100 万、误判率 0.1% 的布隆过滤器
BF.RESERVE user_filter 0.001 1000000

# 写入合法用户 ID
BF.ADD user_filter 10086
BF.ADD user_filter 10087

# 查询前先判定是否存在,避免穿透
BF.EXISTS user_filter 99999