Bloom Filter

概率计算:

False Positive 概率(k个函数,n个数后全部为1的概率)


image.png

实际使用场景:

当n很大时,误报率会上升,

 python
 math.pow(1-math.exp(-k*n/m),k)

>>> math.pow(1-math.exp(-8*20/256),8)
0.02549173076596687
>>> math.pow(1-math.exp(-8*16/256),8)
0.02549173076596687
>>> math.pow(1-math.exp(-8*32/512),8)
0.02549173076596687
>>> math.pow(1-math.exp(-8*64/1024),8)
0.02549173076596687

为了保证98%的准确率,所以要不断的扩充 m

  • 字符串存 :16*16 = 256 B
  • bloomfilter :256Bit = 32B
    存储为原来的为1/8

生成一个新的Bloom FIlter

  • 两个都写,读两个都读,都为True则True
  • 只写新的,读取时都读,有一个Trure则True

转载:
https://zhuanlan.zhihu.com/p/43263751

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容