0%

位图BitMap

文章字数:253,阅读全文大约需要1分钟

1byte = 8bit
内部只有0和1
每一位用来存储某种状态,适合大数据,但是数据状态并不多的情况。

优缺点

优点:占用空间小,只保存状态
缺点:只能保存状态,且只有0和1。不能计算个数(天然去重)

使用

  1. 上亿级别的ip黑名单,可以使用Hash算出黑名单处于map的位置并且设置值为1。

布隆过滤器

  1. 使用三次Hash在位图中存储的方式表示元素是否存在于过滤器中
  2. 使用三次Hash命中不同位置(尽量避免hash碰撞),三次都未命中则一定不存在。并不能保证判断存在。
  3. 范围越大误判率越低,初始化大小决定了过滤器的误判率。
  4. 删除很困难。
    google.guava这个包里有
    redis中有布隆过滤器的插件,可以直接用bf.addbf.exists
    bf.reserve xx 0.00001设置误判率