布隆过滤器个人认识

Posted 林嘉瑜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了布隆过滤器个人认识相关的知识,希望对你有一定的参考价值。

用于网页黑名单系统,垃圾邮件过滤系统,爬虫的网址判重系统。
一般的意思是在大量数据集合中,判断一个新数据是否存在于这个集合中。
数据量少还可以使用hashmap和位图bitmap。数据一大占用内存不理想。
布隆的做饭法是,开辟一个长度为m的位图数组,对于每一个集合的元素使用多个hash函数计算得值%m,落在数组上的位置
都置1,这样计算完一个集合样本之后,位图数组就被置了很多1,当一个新数据来了,将那多个hash函数计算一下,如果得到的%m之后发现在位图数组上都是1了,那么可以确定这个数据在集合里,如有一个或多个为0,那就不是。删一个样本不容易。
样本数量为n,失误率为p,
m = -(n*lnp)/(ln2)^2
哈希函数的个数k = ln2 * m/n;

以上是关于布隆过滤器个人认识的主要内容,如果未能解决你的问题,请参考以下文章

不了解布隆过滤器?一文给你整的明明白白!

原创不了解布隆过滤器?一文给你整的明明白白!

Redis 高级主题之布隆过滤器(BloomFilter)

面试官:如何在十亿个单词字典中,判断某个单词是否存在?(布隆过滤器)

Redis 之布隆过滤器(BloomFilter)

面试必问:布隆过滤器的原理以及使用场景