布隆过滤器及解决缓存穿透
我的理解:
- 首先它是一个bit数组结构,数组中的数据不是0就是 1
- 我们对key会进行2到多次的hash函数计数,将计算到的值对应的数组中的节点改为1
- 为什么要进行多个hash计算而不用一个?为了让数组长度更短
- 比如百度是计算的1,4,7;腾讯计算出来1,5,8;其中1就会被覆盖;
- 我们搜索阿里,计算出阿里的hash值是2,4,5;但是由于2是0,所以阿里这个数据一定不存在,4和5虽然是1但可能是其他数据覆盖的
- 如果搜索头条,算出的hash值是4,5,8;虽然值都是1,但是我们也只能说头条这个数据可能存在,而不是一定存在
https://www.jianshu.com/p/2104d11ee0a2