布隆过过滤器
用于解决 缓存穿透问题
布隆过滤器 本质就是二进制 01组成的二进制数组,工作原理也很简单 就是判断用户访问的数据是否存在于缓存中,
布隆过滤器工作原理
前置知识 哈希函数:
通过同一个哈希函数 得到的哈希值不相同 那么两个哈希值原始输入的值肯定是不同的。
通过同一个哈希函数,得到的哈希值相同, 两个哈希值的原始值有可能相同 有可能不同。
总结下来也就是 哈希值不同 原来的值肯定不同 哈希值相同 原来的值有可能相同 有可能不同。
布隆过滤器为什么要哈希函数存储那?
哈希函数最后存入到布隆过滤器中就是 0和1 存在数组就是1 不存在就是0 这比存原始数据大大减少了内存的占用
- 数据插入过程
数据存入过程
以上图为例
原始数据hello 经过两个hash函数 计算出两个位置 3 和5
在二进制数组中就把 3和5的位置改为1 其它为0
000101000 就是hello在布隆过滤器中的位置
读取过程与存入过程相似,通过hash计算读取值的hash函数 判断是否存在 存在就去缓存中读取数据
删除操作很难操作