无题
无题
John Doe布隆过滤器
布隆过滤球实质上是一个超长的字节数组,经过布隆过滤器的判断,如果判断key存在于系统中,则在系统中可能不存在;如果判断不存在于系统中,则必定不存在
初始时的布隆过滤器:
假设存在
y1 = f(x) = length(str)
y2 = f(x) = length(str) * 2 - 1
y3 = f(x) = length(str) * 3 - 2
这三个函数
现在需要将[“a”, “ab”, “abc”]三个字符串存入布隆过滤器,操作如下
最后一步存入abc后,布隆过滤器变成了如图所示的状态
当查询字符串 ab 时,把字符串 ab 做上面的函数映射,根据三个函数可以得到 111 的组合,都为1,说明系统可能存在字符串ab
当查询字符串 ac 时, 把字符串 ac 做上面的函数映射,根据三个函数可以得到 111 的组合,都为1,说明系统可能存在字符串ac,其实并不存在,这就取决于我们设计的hash函数是否足够分散
当查询字符串 abcdefg 时,把字符串 abcdefg 做上面的函数映射,根据三个函数可以得到 100 的组合,存在0,则说明系统中不存在字符串 abcdefg
当然,布隆过滤器也存在局限,在删除数据时,布隆过滤器无法删除。
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果



