首页 > 代码库 > 谈谈我对bloom filter的理解。
谈谈我对bloom filter的理解。
我们都看过封神榜吧,每一个神位都对应着一个人。
在西周时代,如果一个人声称自己是神,那么他必须可以通过封神榜的验证,如果封神榜验证了下这个人,发现神位上根本没这号人,那么这个人绝对不是神。
但是封神榜的验证方式是有漏洞的,那些企图依靠神的名声招摇撞骗的人之中,有些人发现了这个秘密,他们可以通过伪造自己的名字,来欺骗封神榜,虽然符合
要求的名字很少很少。但是总有一些人找到了些能欺骗封神榜的名字。
这样一来,封神榜验证一个人是不是神,只有两种结果。 一种是这个人不是神,这个结果是肯定正确的,只能说明这个人伪装的不是很好。第二种这个人是神,那么就得好好斟酌了,有可能是这个人找到一个漏洞,欺骗了封神榜,冒充了某个神。
那么海量处理利器,bloom filter是个什么东东呢? 它有两样东西,一个位数组,一组hash函数。每个hash函数都可以将这个人映射到一个特定位上。 这组hash函数就是用来验证一个人是不是神的规则。而位数组就相当于封神榜,封神榜呢?有一个规则,必须是代表这个人的几个不同位置同时为1,才承认这个人是神。hash函数将一个人映射到封神榜的不同位置,若发现这些不同的位置的值都是1,那么就勉强的认为这个人是神。如果发现这个人通过这组hash函数映射的不同位,上,居然有些位置是0,或是全是0,那么封神榜就会无情的告诉它,你丫不是神,玩蛋儿去。
谈谈我对bloom filter的理解。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。