极客时间返利平台,你可以在上边通过山月的链接购买课程,并添加我的微信 (shanyue94) 领取返现。
山月训练营之面试直通车 服务上线了,从准备简历、八股文准备、项目经历准备、面试、面经、面经解答、主观问题答复、谈薪再到入职的一条龙服务。

# 简述 bloomfilter,及它的使用场景是什么

Issue

欢迎在 Gtihub Issue 中回答此问题: Issue 331 (opens new window)

Author

回答者: liazylee (opens new window)

一个以计算来换取空间的概率算法,分配一个连续的内存 (m 位的位数组),将目标通过 k 个 hash 函数,每个 hash 函数映射到位数组上。查询时通过所有的 k 个 hash 函数计算是否为 1。只要有一个 0 则不存在,全部为 1 也不是一定存在。所以 bloomfilter 适合希望减少内存占用,但允许判断存在 True 出现误判。不允许误差的使用的场景是在缓存或数据库的上层加上 bloomfilter,判断是否存在,如果不存在就不去操作缓存或者数据库层。允许误差的情况下使用场景就较多,可以参考 redis set 的使用场景。

Last Updated: 6/26/2022, 10:48:10 AM