布隆过滤器

2019/12/20

布隆过滤器是一种数据结构,可以用来判断一个元素是否在一个集合中。很常用的一个功能是用来去重

相比于数据库和 Redis set,使用布隆过滤器可以很好的避免性能和内存占用的问题。

  • 使用 K 个哈希函数对元素值进行 K 次计算,得到 K 个哈希值。

  • 根据得到的哈希值,在位数组中把对应下标的值置为 1

当要判断一个值是否在布隆过滤器中,对元素再次进行哈希计算,得到值之后判断位数组中的每个元素是否都为 1,如果值都为 1,那么说明这个值在布隆过滤器中,如果存在一个值不为 1,说明该元素不在布隆过滤器中。

布隆过滤器存在误判,如果判断不存在 ,那么一定不存在。如果存在,则不一定存在。

参考:

Redis 中的布隆过滤器

大白话布隆过滤器

Post Directory