34 布隆过滤器
什么是布隆过滤器
一种检测元素是否在给定大集合中的数据结构。是一个位数组。元素只能是1或0。性能好,但不容易删除,有一定错误率,集合越大错误率越高。
如何使用布隆过滤器
【34 布隆过滤器】布隆过滤器有多个哈希函数,将元素放入过滤器时,用这几个哈希函数求元素hash值,然后将对应的位置为1,。
检测元素是否存在时,用这几个哈希函数对元素求哈希值,然后检测对应的位置是否为1。
因此布隆过滤器说某个元素存在,可能会误判,但说某个元素不在,那肯定不在。
布隆过滤器应用场景
- 判断元素是否存在与海量数据集里/去重
- 防缓存穿透
将数据制成布隆过滤器,如果缓存里没有请求数据,先看看布隆过滤器里是否有请求数据,如果没有就不用请求数据库直接返回,如果有可以先把数据放到缓存里,也不用请求数据库。 - 垃圾邮件过滤和黑名单
推荐阅读
- 为什么你的路演总会超时()
- 财商智慧课(六)
- 异地恋中,逐渐适应一个人到底意味着什么()
- 做一件事情的基本原理是什么()
- 今天写一些什么
- 眉头开了
- 吃了早餐,反而容易饿(为什么?)
- 我们应该和什么样的人交朋友
- 做个俗物有什么不好
- 为什么越花钱的人越有钱,越舍不得花钱的人却越穷()