文章字数:253,阅读全文大约需要1分钟
位
1byte = 8bit
内部只有0和1
每一位用来存储某种状态,适合大数据,但是数据状态并不多的情况。
优缺点
优点:占用空间小,只保存状态
缺点:只能保存状态,且只有0和1。不能计算个数(天然去重)
使用
- 上亿级别的ip黑名单,可以使用Hash算出黑名单处于map的位置并且设置值为1。
布隆过滤器
- 使用三次Hash在位图中存储的方式表示元素是否存在于过滤器中
- 使用三次Hash命中不同位置(尽量避免hash碰撞),三次都未命中则一定不存在。并不能保证判断存在。
- 范围越大误判率越低,初始化大小决定了过滤器的误判率。
- 删除很困难。
google.guava
这个包里有redis
中有布隆过滤器的插件,可以直接用bf.add
和bf.exists
。bf.reserve xx 0.00001
设置误判率