使用场景
redis缓存击穿,可以使用布隆设置一个白名单或黑名单过滤非法请求
优点
1.因为存储的是二进制数据,所以占用空间很小
2.是利用哈希值来计算的,所以查询和插入的速度很快。时间的复杂度是O(n) n是代表你使用多少次hash算法来计算
布隆过滤器可以用来过滤一些非法请求参数
缺点
误判
默认布隆过滤器其实是一个二进制的数组,保存0 1 数据,数据用hash算法来保存对应数据的位置,如果存在就返回1,不存在就返回0, 但这里会有误判的概率,因为不同数据的哈希值可能是一样的,
布隆过滤器很难进行删除操作,还是因为不同的数据计算的哈希值是相同的,你也不确定这个下标对应的值一定是你要修改的值,只能尽量的减少误判概率,可以使用谷歌的Guava工具类来实现,但设置误判概率越小,那么使用到的hash算法越多,那么时间就越久,占用的空间就会越大,这个还是要结合自身业务来设置一个合适的值。