一、布隆过滤器
1.作用
布隆过滤器是一个二进制向量数据结构,是用来检查一个元素是否在一个集合中,它可以确定一个元素一定不在一个集合中,但是不能确定一个元素是否一定在某个集合中。
2.原理
布隆过滤器内部维护的是一个默认大小为64kb的位数组和n个哈希函数。位数组初始化的时候存储的都是0,如果一个集合通过布隆过滤器来记录元素,那么就会用元素调用n个哈希函数,获取n个hash值,然后根据hash值来修改布隆过滤器位数组对应下标上的元素为1,也就是每个元素在位数组上都对应着n个1。当要判断一个元素是否在一个集合中的时候,就会拿这个元素调用n个哈希函数来得到n个下标,如果对应下标上的数据有一个是0,那么这个元素一定不在这个集合中,如果全是1那么这个元素也不一定在这个集合中。