布隆过滤器,一种数据结构,用于判断一个东西一定不存在或有可能存在。
其本质,是一个bit数组。它将一个对象分拆作哈希运算,然后指向其中若干个BIT位,置为1。所以如果检查到某个对应BIT位为0,则可以肯定该对象不存在。如果该对象所有对应的BIT位都为1呢,是不是可以证明该对象存在呢?不能,因为有其他对象也可能指向了这些BIT位。
所以布隆过滤器只能判断一个东西一定不存在或有可能存在。
但是由上可知,布隆过滤器消耗资源很少。它的作用跟它的大小有关系。如果它非常小,那么BIT位很快就会被填满,查询任何东西都会返回“可能存在”,这样就失去了意义;但如果长度很长,准确率高,但效率会变低。要取得平衡。
布隆过滤器由于它消耗资源少,效率高,所以可以用在过滤的第一道防线。
参考资料
详解布隆过滤器的原理、使用场景和注意事项