亿级数据之过滤器布隆过滤器
Posted huaxu的二次学习笔记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了亿级数据之过滤器布隆过滤器相关的知识,希望对你有一定的参考价值。
如何玩转大数据量的一个查询
1,多级缓存机制Redis
2,缓存穿透之后布隆过滤器。(主要解决空查询的问题)
3,请求经过缓存Redis查询之后,然后进入布隆过滤器,布隆过滤器是由一系列的hash算法和一个固定的阵列组成的。
话不多说,直接上图
用户发送请求 -> Redis里面查找 -> 经过布隆选择器过滤 -> 判断是否需要去数据查询。
先将数据的海量数据通过布隆过滤器将数据存放在这个阵列里面。在由于hash算法的单向不可逆性,如果要查询的一个数据在目标表里面是否存在,只需将此数据经过不同的hash算法。取模运算,然后在阵列的相应位置进行匹配,如果有一位匹配不上。则说明该数据一定不会在数据表里面。测试表明。对于一个一千万数据量的表,进行一个select * from where id = #{id} 的时间大概是4s左右的时间。加入Redis预热之后的查询大概100ms左右。
问题:布隆过滤器对增加和删除的数据该怎么处理?目前还在学习中。
以上是关于亿级数据之过滤器布隆过滤器的主要内容,如果未能解决你的问题,请参考以下文章