首先准备一个长度为M的位数组,
其次准备K个hash算法,
对数据分别做hash, 并将位数组中hash值对应位置修改为1....例如:
对字符串baidu进行布隆过滤, 经过3次hash, 分别对应存储数组3个位置.
在下次对字符串baidu过滤时, 只需要判断这3个索引位置是否值为1即可....示例网站: https://www.jasondavies.com/bloomfilter/
但这种方式会带来一个问题, 不同的字符串经过hash后会指到同一位置, 如字符串google
当存储的字符串很多时..., 但相比于Map/Set等方式判断元素是否存在, 布隆过滤器更加节省空间, 这在数据量非常大的情况下是非常有优势的....应用场景
利用布隆过滤器减少磁盘 IO 或者网络请求, 一个值必定不存在的话, 可以不用进行后续逻辑处理, 即使是误判的情况下, 继续后续逻辑, 也会大大降低系统压力.
1.