哈希2:认识布隆过滤器,一致性哈希

布隆过滤器: 当我们要解决处理海量数据的时候,我们可以使用布隆过滤器。它其实也是一个集合。但是它有失误率。
例子:当我们处理黑名单的时候,比如有100亿个黑名单,每一个就是一个链接,每个url是64个字节,当用户访问的时候我要判断是不是属于这个黑名单。
哈希2:认识布隆过滤器,一致性哈希_第1张图片
显然我们可以想到用哈希表来处理,但是当我们用哈希表来解决的需要多大的空间呢,6400亿个字节也就是640G,太大了。这个时候我们就可以使用布隆过滤器了,它具体是什么呢。一个bitmaps,里面都是比特位。一个整形数组是4个字节,也就是32个比特。怎么搞出比特数组出来,使用基础类型拼出来。
哈希2:认识布隆过滤器,一致性哈希_第2张图片
搞出比特数组了出来我们怎么处理呢,看图
哈希2:认识布隆过滤器,一致性哈希_第3张图片
怎么决定开多大的bit数组和使用多少个哈希函数呢:
哈希2:认识布隆过滤器,一致性哈希_第4张图片
一致性哈希: 一致性哈希,数据迁移代价很低,又能做到负载均衡。
哈希2:认识布隆过滤器,一致性哈希_第5张图片
这里有一个问题,那就是如果要加一个或者减一个的话,那么原本的负载均衡将会被打破,做不到负载均衡。这就需要一个技术了,虚拟节点技术。
哈希2:认识布隆过滤器,一致性哈希_第6张图片

你可能感兴趣的:(数据结构与算法)