> 文章列表 > 【redis】布隆过滤器BloomFitter

【redis】布隆过滤器BloomFitter

【redis】布隆过滤器BloomFitter

【redis】布隆过滤器BloomFitter


文章目录

  • 【redis】布隆过滤器BloomFitter
  • 前言
  • 一、面试题
  • 二、是什么
    • 1、设计思想: 本质就是判断具体数据是否存在于一个大的集合当中
  • 三、布隆过滤器特点
    • 1、重点 有,是可能有,无是一定无
    • 2、小总结
  • 四、原理
    • 1、原理
    • 2、添加、查询key
    • 3、hash碰撞导致数据不精准
    • 4、hash碰撞
    • 5、过滤器误判,为什么不删除?
    • 6、小总结
  • 五、使用场景
    • 1、解决缓存穿透
    • 2、黑名单校验,识别垃圾邮件
  • 六、尝试手写布隆过滤器,结合bitmap自研一下体会思想
    • 1、整体架构
    • 2、设计步骤
    • 3、java端 的插入 读取操作
      • 插入mysql+redis
      • 读取redis+mysql
      • 二进制数组构建过程 理论
      • 布隆过滤器初始化加载工具,即上一步的具体化操作
      • 检查性工具 检查是否在布隆过滤器中存在
      • 重新修改最开始的 读写操作
      • 测试说明
  • 七、布隆过滤器优缺点
    • 优点
    • 缺点
    • 布谷鸟过滤器(了解)

前言

在这里插入图片描述


一、面试题

在这里插入图片描述


二、是什么

在这里插入图片描述

1、设计思想: 本质就是判断具体数据是否存在于一个大的集合当中

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


三、布隆过滤器特点

在这里插入图片描述

1、重点 有,是可能有,无是一定无

在这里插入图片描述

2、小总结

在这里插入图片描述


四、原理

在这里插入图片描述

1、原理

在这里插入图片描述

2、添加、查询key

在这里插入图片描述

3、hash碰撞导致数据不精准

在这里插入图片描述
在这里插入图片描述

4、hash碰撞

在这里插入图片描述

5、过滤器误判,为什么不删除?

在这里插入图片描述

6、小总结

在这里插入图片描述


五、使用场景

在这里插入图片描述

1、解决缓存穿透

在这里插入图片描述
在这里插入图片描述

2、黑名单校验,识别垃圾邮件

在这里插入图片描述


六、尝试手写布隆过滤器,结合bitmap自研一下体会思想

在这里插入图片描述

1、整体架构

在这里插入图片描述

2、设计步骤

3、java端 的插入 读取操作

插入mysql+redis

在这里插入图片描述

读取redis+mysql

在这里插入图片描述

二进制数组构建过程 理论

在这里插入图片描述

布隆过滤器初始化加载工具,即上一步的具体化操作

在这里插入图片描述

检查性工具 检查是否在布隆过滤器中存在

在这里插入图片描述

重新修改最开始的 读写操作

读取时判断是否在 白名单中
在这里插入图片描述

测试说明

在这里插入图片描述


七、布隆过滤器优缺点

优点

在这里插入图片描述

缺点

在这里插入图片描述

布谷鸟过滤器(了解)

主流还是布隆过滤器,没有升级换代的需求。。。