Bitmap 和 Bloom Filter概念和原理

BitMap

https://www.cnblogs.com/dragonsuc/archive/2019/06/09/10993938.html

布隆滤波器

它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(false positive)。因此,Bloom Filter不适合那些“零错误”的应用场合。而在能容忍低错误率的应用场合下,Bloom Filter通过极少的错误换取了存储空间的极大节省。
哈希碰撞会导致布隆滤波器发生误判。
布隆滤波器可以用于大数据去重。

应用

  • HBase
    提高随机读的性能。利用磁盘空间减小系统的IO负荷。

每一个HBase中的StoreFile持有一个Bloom filter。布隆过滤器的主要作用,是帮助HBase跳过那些显然不包括所查找数据的底层文件。根据布隆滤波器的同特性,如果某个文件不包含指定行,用户可以立刻知道。当然,可能会有bloom过滤器认为文件包含该行但是实际上不包含的情况。

详细请查阅HBase的相关文档。

  • 网页爬虫对URL的去重,避免爬取相同的URL地址;
  • 反垃圾邮件,从数十亿个垃圾邮件列表中判断某邮箱是否垃圾邮箱(同理,垃圾短信);
  • 缓存击穿,将已存在的缓存放到布隆中,当黑客访问不存在的缓存时迅速返回避免缓存及DB挂掉。

替代方案

BitMap去重

如果不想接收错误率,愿意牺牲空间,还有一种BitMap去重的办法。原理很简单,就是对每一个数值映射唯一的地址。然后存储1bit。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值