布隆过滤器的原理学习

最近在看redis,看到了布隆过滤器,查了几篇文章之后就总结一下自己的学习,本文只是对基本原理做一个总结,代码分析在下一章《布隆过滤器的代码学习》

1、布隆过滤器概要

1、布隆过滤器简介

 布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。(摘自百度百科)
 这是百度百科对于布隆过滤器的一个解释,在开了天眼分析过之后,我来通俗化一下这个解释。
 实际上布隆过滤器由两部分构成:
 1、 一个二进制向量,(可以把它理解成一个数组,里面存放的是1,0,0,1,1......这样的二进制数)。默认存储的是0。主要用于判断一个元素是否在一个集合中,0代表不存在某个数据,1代表存在某个数据。
 2、  一系列的哈希函数(随机映射函数)。

2、基本工作原理

主要用来对存储的数据做hash计算,得到对应的散列值,这个散列值就是这个值对应的在数组的位置下标,每一个hash函数做一次散列计算,得到这个要存储的值的一系列下标位置,然后把对应位置的数据里面的数据修改为1,表示该数据存储进入布隆过滤器。查询数据的时候只需要对数据做对应的散列计算,然后比对下标中的值,如果值全部为1则表示这个数据是存在布隆过滤器的,只要有一个为0,就表示布隆过滤器中没有该数据。这即是布隆过滤器的工作原理。

3、主要用途<

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值