作者:Annchain
(本文一切著作权归annchain技术团队所有,未经许可,不得转载。若需转载请联系页尾二维码。)
Bloom Filter简介
布隆过滤器(bloom filter)是空间效率很高的一种概率数据结构,1970年由bloom提出,用于判断一个元素是否在一个集合中。Bloom filter 判断一个元素不存在集合中,则肯定不存在,如果判断一个元素存在于集合中,有一定的概率判断错误。元素可以加到集合中,但是删除困难,有一定的判断误差,因此适合容忍低错误率的场景。
算法描述
布隆过滤器的核心思想是使用多个哈希函数将元素映射到一个位数组中的某一位。
布隆过滤器用m个比特的数组保存数据,初始状态下该数组的所有位都为0, 有k个不同的哈希函数,每个哈希函数将集合中的每个元素映射到{1,...,m}的范围之中。
往布隆过滤器添加一个元素x时,用k个哈希函数得到k个哈希值,将位数组中对应的值置为1。如果某一位多次被置为1,则只有第一次起作用。
<