布隆过滤器(BloomFilter)

一. Redis的三大问题

名称问题解决方法
缓存穿透查询了一个不存在的数据布隆过滤器
缓存击穿某个key的缓存失效互斥锁
缓存雪崩多个Key的缓存同时失效失效时间+随机时间

二. 布隆过滤器的原理

底层是一个bit二进制向量或叫 bit 数组,bit 里存放的数据非0即1。
在这里插入图片描述
通过散列函数将元素映射到bit的相应位置,并将此位置置为1。如hash(元素) = 2:
在这里插入图片描述
当要查询某个元素是否存在时,先通过散列函数将元素进行映射,得到在bit的位置,再判断bit的此位置是0或1,若为0,则此元素一定不存在,若为1,则此元素不一定真的存在(是否还记得大明湖畔的经典名句:hash值相等,不一定是同一个对象;同一个对象,hash值一定相等)。

三. 布隆过滤器的缺点

  • 真假难辨
确缺点解释解决
误判得到某个元素在bit的位置后,判断时发现此位置是1,但其实此元素并不存在单独存储可能会误判的元素
错删两个或以上的元素映射到bit的位置相同,要删除某个时,将1置为0,导致其他元素也完蛋了Counting Bloom Filter
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值