布隆过滤器原理、特性及短信黑名单过滤业务实现方案
一、 什么是布隆过滤器作用、组成、添加元素流程、查询元素的流程、特点误判、不支持删除布隆过滤器Bloom Filter是由Burton Howard Bloom于1970年提出的。我们可以把它看作由位数组和一组哈希函数组成的数据结构,它占用空间少并且效率更高但是缺点是其返回的结果是概率性的而不是非常准确的。理论情况下添加到集合中的元素越多误报的可能性就越大。并且存放在布隆过滤器的数据不容易删除。换句话说是一种用来检查元素是否存在于指定集合中的数据结构这种数据结构是高效且性能很好的但缺点是具有一定的错误识别率和删除难度。并且理论情况下添加到集合中的元素越多误报的可能性就越大。组成位数组多个哈希函数组成添加元素流程首先对需要存入的元素进行不同的哈希函数运算生成不同的哈希结果然后将每一个哈希值对应到位数组的位置并且将对应的位置下标从0改成1。查询元素的流程对于待查询元素使用和添加元素完全相同的个数哈希函数进行计算算出若干个哈希值映射得到位数组上对应位置的下标进行比对只要有任意一个位置的值为 0说明该元素一定没有存入布隆过滤器如果所有的值均为 1则无法确定元素一定存在只能判定元素大概率存在因为存在误报可能性。特点1、误判性2、不支持删除二、布隆过滤器的优点和缺点有哪些优点1、存储空间高效仅使用 bit 数组存储标记不存放原始数据同等数据量下内存远小于 List、Set、Map2、读写性能高插入与查询只需要多次哈希运算效率很高3、数据本身不存储增强安全性没有保存原始元素无法直接从过滤器中还原数据缺点1、存在误报问题有可能把不存在的元素判定为存在元素数量越多误报概率越高2、难以删除元素多个元素会共享比特位直接置 0 会影响其他元素判断3、无法获得实际元素三、 发送业务通知短信前要判断手机号码是否在黑名单1000w实现思路针对 1000 万级别的手机号码黑名单判断场景使用布隆过滤器Bloom Filter来实现具体实现思路如下1、数据初始化把数据库中的1000万个黑名单手机号全部取出依次通过哈希函数将所有黑名单手机号都添加到布隆过滤器中。2、业务收到发送请求先用手机号查询布隆过滤器使用相同哈希函数进行查询如果过滤器判定不存在则手机号不在黑名单允许发送短信如果过滤器判定存在则有可能在黑名单里因为布隆过滤器存在误判的可能所以需要进行二次查询来确定是否真的在黑名单里。

相关新闻

HDCP版权保护_桥接芯片科普05

HDCP版权保护_桥接芯片科普05

HDCP 版权保护:桥接芯片里最容易被忽视的"隐形门禁" 龙迅桥接芯片科普系列 第 05 篇 系列文章:01 选型指南 | 02 DSC 显示流压缩 | 03 车载显示桥接方案 | 04 Type-C 扩展坞 | 05 HDCP 版权保护 | 06 D-PHY vs C-PHY(待写&#xf…

2026/7/29 8:26:10 阅读更多
3D打印与Arduino结合:从零打造会跳舞的仿生机器人

3D打印与Arduino结合:从零打造会跳舞的仿生机器人

1. 项目概述:当3D打印遇上Arduino,一个会跳舞的机器人诞生了 如果你和我一样,既沉迷于3D打印机“无中生有”的魔力,又对Arduino开源硬件控制现实世界的能力着迷,那么“精舞堂BOB”这个项目绝对能让你两眼放光。这不仅仅…

2026/7/29 8:26:10 阅读更多
LARA-R6401与PIC18LF45K42的低功耗物联网设计实践

LARA-R6401与PIC18LF45K42的低功耗物联网设计实践

1. LARA-R6401与PIC18LF45K42的硬件协同设计在物联网边缘计算领域,LARA-R6401 LTE Cat 1模块与PIC18LF45K42微控制器的组合正在开创低功耗广域连接的新范式。这个组合最吸引人的特点是:LARA-R6401提供了仅24x26mm的紧凑封装中集成了全球多频段LTE连接能力…

2026/7/29 8:56:11 阅读更多
DC-4靶机实战:SSH暴力破解与Linux提权技术深度解析

DC-4靶机实战:SSH暴力破解与Linux提权技术深度解析

1. 项目概述:从靶机到实战的SSH攻防演练最近在整理渗透测试的学习笔记,翻到了DC-4这个经典的靶机。它不像DC-1那样是纯粹的入门引导,也不像DC-3那样有明确的Web路径,DC-4更像是一个“混合型”的实战沙盒,其核心挑战之一…

2026/7/29 8:56:11 阅读更多
多账号矩阵管理工具解析与实战指南

多账号矩阵管理工具解析与实战指南

1. 多账号运营的困境与破局 去年接手一个跨境电商项目时,我手头需要同时管理87个不同国家的店铺账号。每天在不同平台间切换登录、重复上传商品、机械回复咨询,这种低效操作让我意识到:传统单账号运营模式已经无法适应现代商业需求。 多账号…

2026/7/29 8:56:11 阅读更多
VB加密解密实战:从CryptoAPI调用到核心源码剖析

VB加密解密实战:从CryptoAPI调用到核心源码剖析

1. 项目概述:为什么今天还要聊VB加密?“Visual Basic加密解密实战:源码剖析”这个标题,乍一看可能会让很多新入行的开发者感到困惑。Visual Basic?那不是上个世纪的古董语言吗?现在谁还用VB做加密啊&#x…

2026/7/29 8:56:11 阅读更多
终极百度网盘高速下载指南:简单三步获取直链地址

终极百度网盘高速下载指南:简单三步获取直链地址

终极百度网盘高速下载指南:简单三步获取直链地址 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 还在为百度网盘下载速度慢而烦恼吗?百度网盘直链解析工…

2026/7/29 8:46:10 阅读更多