一般BF可以与一些key-value的数据库一起使用,来加快查询 。由于BF所用的空间非常小,所有BF可以常驻内存 。这样子的话,对于大部分不存在的元素,我们只需要访问内存中的BF就可以判断出来了,只有一小部分,我们需要访问在硬盘上的key-value数据库 。从而大大地提高了效率 。
【扩展】
Bloom filter将集合中的元素映射到位数组中,用k(k为哈希函数个数)个映射位是否全1表示元素在不在这个集合中 。Counting bloom filter(CBF)将位数组中的每一位扩展为一个counter,从而支持了元素的删除操作 。Spectral Bloom Filter(SBF)将其与集合元素的出现次数关联 。SBF采用counter中的最小值来近似表示元素的出现频率 。
【问题实例】
给你A,B两个文件,各存放50亿条URL,每条URL占用64字节,内存限制是4G,让你找出A,B文件共同的URL 。如果是三个乃至n个文件呢?
【海量数据处理的算法 海量数据处理】根据这个问题我们来计算下内存的占用,4G=2^32大概是40亿*8大概是340亿bit,n=50亿,如果按出错率0.01算需要的大概是650亿个bit 。现在可用的是340亿,相差并不多,这样可能会使出错率上升些 。另外如果这些urlip是一一对应的,就可以转换成ip,则大大简单了 。
关于实现部分的代码后续会分享,近期会继续研究这部分算法,敬请期待,我的小伙伴们!!!
推荐阅读
- 金银花的功效与禁忌! 金银花的功效与作用
- 冷冻后的苦瓜怎么吃
- 新手开服装店的5个技巧 开服装店的前期准备
- 2021电脑死机的十大原因 电脑为什么老死机
- 六一儿童节美好的寄语 六一儿童节发朋友圈的句子
- 郭亚宁的七味早餐糊哪里有卖的
- 木瓜的功效与应用 木瓜的作用与功效与作用
- 祝贺国庆节祝福语大全简短 描写国庆节的佳句
- 二十四节气的起源 二十四节气表顺口溜
- 剪映默认的码率是多少
