课程名称:Java架构师-十项全能
课程章节:
布隆过滤器
主讲老师:
姚半仙
课程内容:
布隆过滤器是一段01的二进制码组成,0表示无数据,1表示有数据。通过散列函数来实现。例如,书包散列第一位、第二位、第五位,当第一位、第二位、第五位都为1时, 说明书包存在表示书包是存在的。生日礼物散列到第五位、第八位、第十一位,当第五位、第八位、第十一位都为1,则表示生日礼物可能存在的。所以一般的布隆过滤器有一定的误判率, 可以通过扩大空间解决,或者增加散列函数提高准确率。布隆过滤器是一个全量同步的缓存。不允许删除操作。
进击版的布隆过滤器再添加一层数据,表示当前位置被设置为1的次数。进击版的布隆过滤器允许删除,当想删除散列值时,找到位置,次数-1即可。