布隆过滤器
插入过程
查找过程
你好→算出下标 3 5 7,三个位置的二进制数据必须都是1,才能说明存在你好这个数据
- 多个哈希函数
- 多个二进制都是1,才能说明存在
由一串二进制数组 组成的数据,占用空间小。插入和查询非常快。时间复杂度为O(哈希函数个数)
误判,因为不同数据哈希值有可能是相同的。几乎解决不了,只能减小误判的概率。误判率设置的越小,执行速度就会变慢。哈希函数是影响误判率的因素。
- 误差率越小,所占用的空间就越大,需要的哈希函数就越多
- 为什么需要多个哈希函数?
- 减小误判的概率,每一个哈希函数采用不同的哈希算法,算出的下标位置也不同;哈希函数越多,算出来的哈希值就越多
程序员都必须会的技术,面试必备【布隆过滤器详解】,Redis缓存穿透解决方案_哔哩哔哩_bilibili (opens new window)
上次更新: 2022/06/10, 03:48:11