布隆过滤器的介绍

67 阅读1分钟

布隆过滤器的简介

布隆过滤器是一个算法,一个随机映射函数,1970年由布隆提出,用于判断一个元素是否在一个集合中。 算法包括两个部分:一个二进制数组、一个Hash算法 高效的插入和查询,由于判断某个元素是否在一个集合之中。 从下图中我们可以看出该算法存在误判的概率 结论:存在集合中的不一定存在(哈希冲突),不存在集合中的一定不存在

在这里插入图片描述

布隆过滤器的应用

网页URL的去重,垃圾邮件的判别,集合重复元素的判别,查询加速(比如基于key-value的存储系统)、数据库防止查询击穿, 使用BloomFilter来减少不存在的行或列的磁盘查找。Google 著名的分布式数据库 Bigtable 使用了布隆过滤器来查找不存在的行或列,以减少磁盘查找的IO次数,Google Chrome浏览器使用了布隆过滤器加速安全浏览服务。

优化方法

  • 增加数组、预估合适值
  • 增加hash函数进行映射 在这里插入图片描述