亿级数据之过滤器布隆过滤器

如何玩转大数据量的一个查询

1,多级缓存机制Redis

2,缓存穿透之后布隆过滤器。(主要解决空查询的问题)

3,请求经过缓存Redis查询之后,然后进入布隆过滤器,布隆过滤器是由一系列的hash算法和一个固定的阵列组成的。

话不多说,直接上图

用户发送请求 -> Redis里面查找 -> 经过布隆选择器过滤 -> 判断是否需要去数据查询。

先将数据的海量数据通过布隆过滤器将数据存放在这个阵列里面。在由于hash算法的单向不可逆性,如果要查询的一个数据在目标表里面是否存在,只需将此数据经过不同的hash算法。取模运算,然后在阵列的相应位置进行匹配,如果有一位匹配不上。则说明该数据一定不会在数据表里面。测试表明。对于一个一千万数据量的表,进行一个select * from where id = # 的时间大概是4s左右的时间。加入Redis预热之后的查询大概100ms左右。

问题:布隆过滤器对增加和删除的数据该怎么处理?目前还在学习中。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181205G0OB5T00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券