布鲁姆过滤器
布隆过滤器是一种数据结构,快速和节省内存,能用于判定一个元素是否存在于一个集合中。
这种效率的代价是Bloom filter是一种概率数据结构,元素不是绝对的在组里或可能在组里。
Bloom filter的基本数据结构是一个位向量。

图1:布鲁姆过滤器散列图
如图1:布鲁姆过滤器,由一个长度为m(=18)的数组(初始值都为0)和k(=3)个hash 函数组成,图中的元素x,y,z,判断为“可能”存在于集合中;而元素w一定不在集合中。由于元素x,y,z通过k个hash函数计算后,发现对应的桶中的元素都是1。而w计算后在15号桶为0。
添加元素:将一个元素添加到Bloom Filter中,只需要计算k个hash函数,并将散列的位置都置为1。(因此多个元素,散列到同一个桶中是有可能的)
删除元素:对于simple BF由于多个元素,散列到同一个桶中是有可能的,一个桶值为1不代表这个桶只表示某单个元素的散列信息,可能有其他的元素也散列到这个桶。因此,无法进行删除操作。(增加一个BF存储删除的元素,完成删除操作)
假阳性率:当m和k足够大,或者选取的hash函数足够好的时候,一个元素如果不在集合中,通过hash计算时,得到的值很可能为0(冲突变小),假阳性率越低。当假阳性率太高,会导致很多无效的读取磁盘操作,会很浪费时间。因此,当假阳性率太高时,需要重构BF。
时间和空间分析:添加,删除,查找都为O(k)。对于m长的BF,有n个元素,k个hash函数。当k值取最优时,对于1%假阳性,每个元素只需要消耗9.6bits。每个元素增加4.8bits可以完全解决1%假阳性问题。
相关知识
自定义过滤器和全局过滤器
高效过滤器DOP(PAO)测试方法
生物安全柜高效过滤器多久更换一次?
果园滴灌过滤器「成都云梦大泽灌溉科技供应」
浙江废气中效袋式过滤器 客户至上 昆山卓滤净化设备供应
花箱滴灌管 绿化带滴灌管全自动发冲洗叠片过滤器价格
计数式布隆过滤器(counting bloom filter)Redis实现分析
澳大利亚自然体验和季节 —— 澳大利亚旅游局
办公室过滤器——鲜花
花卉设计绘画艺术
原文链接: 布鲁姆过滤器 https://www.huajiangbk.com/newsview1125530.html
| 上一篇: 鸡冠花多少天出苗 播种后多少天发... | 下一篇: 桂花春季发芽的管理 |
推荐分享

- 1明日花キララ:明日花绮罗年度... 23833
- 2明日花キララ(明日花绮罗)经... 13953
- 3家庭养花知识大全 家庭养花有... 9364
- 4家庭养花风水知识 家庭养花“... 9078
- 5兰花叶子扭的是什么兰 8776
- 6君子兰什么品种最名贵 十大名... 8119
- 7五月天婷婷开心六月丁香:音乐... 7975
- 8十大致癌花卉排行榜,哪些花卉... 7764
- 9秋天养花,掌握这5点养花知识... 7624
- 10【花卉知识 】养花须知:新手... 7226




