1 背景
在实际工作中,我们经常涉及判断一个对象或者数据是否存在于内存或者数据库。往往大家会想到HashMap,但是这时候有一个问题,存储容量占比高,考虑到负载因子的存在,通常空间是不能被用满的,而一旦你的值很多例如上亿的时候,可行性就差了。
另一方面,如果很多请求是在请求数据库根本不存在的数据,那么数据库就要频繁响应这种不必要的IO查询,如果再多一些,数据库大多数IO都在响应这种毫无意义的请求操作,为了解决这一个问题,过滤器由此诞生!
2 布隆过滤器
过滤原理:布隆过滤器(Bloom Filter)大概的思路就是,当你请求的信息来的时候,先检查一下你查询的数据我这有没有,有的话将请求压给数据库,没有的话直接返回。