布隆过滤器原理、特性及短信黑名单过滤业务实现方案
一、 什么是布隆过滤器作用、组成、添加元素流程、查询元素的流程、特点误判、不支持删除布隆过滤器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、业务收到发送请求先用手机号查询布隆过滤器使用相同哈希函数进行查询如果过滤器判定不存在则手机号不在黑名单允许发送短信如果过滤器判定存在则有可能在黑名单里因为布隆过滤器存在误判的可能所以需要进行二次查询来确定是否真的在黑名单里。

相关新闻

学术论文写作必备工具与高效方法全解析

学术论文写作必备工具与高效方法全解析

1. 论文写作工具现状与痛点分析 写论文这件事,从本科生到博士生都逃不掉。特别是对于专科生来说,毕业论文可能是人生中第一次正经的学术写作,既没有系统训练过,又缺乏导师手把手指导。我带了十几届学生,发现他们普遍存…

2026/9/21 13:53:40 阅读更多 →
Android 事件分发 常见案例

Android 事件分发 常见案例

Android 事件分发的核心是先通过 ACTION_DOWN 确定当前事件序列的 TouchTarget。父 ViewGroup 的 dispatchTouchEvent 会先通过 onInterceptTouchEvent 判断是否拦截;不拦截就把事件分发给命中的子 View。子 View 如果消费了 DOWN,后续 MOVE 和 UP 默认都…

2026/9/21 0:05:03 阅读更多 →
Unity WebGL多人在线游戏开发:Mirror网络框架实战避坑指南

Unity WebGL多人在线游戏开发:Mirror网络框架实战避坑指南

1. 项目概述:当Unity WebGL遇上Mirror如果你正在用Unity开发一个多人在线游戏,并且目标平台是WebGL,那么恭喜你,你选择了一条充满挑战但也极具潜力的道路。WebGL让玩家无需下载客户端,点开网页就能玩,这体验…

2026/9/20 9:00:41 阅读更多 →

最新新闻

鼎信诺官网实操避坑:3步搞定环境,面试必问底层逻辑

鼎信诺官网实操避坑:3步搞定环境,面试必问底层逻辑

鼎信诺官网实操避坑:3步搞定环境,面试必问底层逻辑 配置环境就卡半天,这是无数转岗开发者的噩梦。 打开浏览器,搜索“鼎信诺官网”,准备下载最新的开发环境或者查询证书状态。…

2026/9/22 19:23:27 阅读更多 →
2026最新避坑指南:解决图片过大无法添加的3个核心方案

2026最新避坑指南:解决图片过大无法添加的3个核心方案

2026最新避坑指南:解决图片过大无法添加的3个核心方案 版本升级后 API 全变了,这大概是 2026 年开发者最不想听到的话。尤其是处理静态资源时,前端框架一更新,原本好用的上传逻辑直接报“图片过大无法添加”,后端接口也同步调整,导致大…

2026/9/22 19:23:27 阅读更多 →
图解原理拆解年薪十万后端项目架构

图解原理拆解年薪十万后端项目架构

图解原理拆解年薪十万后端项目架构 刚把 Python 语法书翻烂,看着 if-else 和 for 循环都觉得亲切,真让你动手搭个能上线的项目,脑子瞬间一片空白?别慌,这种“会写代码不会做工程”的断层,90% 的新手都踩过。…

2026/9/22 19:23:27 阅读更多 →
wmp录制组件避坑:3个高频面试题背后的实战陷阱

wmp录制组件避坑:3个高频面试题背后的实战陷阱

wmp录制组件避坑:3个高频面试题背后的实战陷阱 刚学完wmp录制组件的API,兴冲冲往项目里一塞,结果页面白屏或者录出来的视频全是马赛克?别慌,这不是你代码写得烂,而是你没搞懂浏览器底层那套媒体捕获的逻辑。很多新手卡在“学会语法却不知怎么…

2026/9/22 19:22:27 阅读更多 →
se95se实战项目避坑:5分钟搞定环境配置

se95se实战项目避坑:5分钟搞定环境配置

se95se实战项目避坑:5分钟搞定环境配置 配置环境就卡半天,是不是你的常态?我见过太多开发者,在 se95se 的入门阶段,因为依赖版本冲突或路径错误,浪费整整一个下午。更扎心的是,当你终于跑通 Hello World,面对一个真实的…

2026/9/22 19:22:27 阅读更多 →
3年踩坑经验:一文搞懂生花生米源码避坑指南

3年踩坑经验:一文搞懂生花生米源码避坑指南

3年踩坑经验:一文搞懂生花生米源码避坑指南 盯着屏幕上一堆红色的 StackTrace,头都大了?别慌,这种报错看着吓人,其实逻辑很死板。 很多刚接触【生花生米】项目的同学,一跑起来就崩,日志刷得比瀑布还快。…

2026/9/22 19:22:26 阅读更多 →

日新闻

3台商务办公笔记本实测:手写实现环境配置,告别卡半天

3台商务办公笔记本实测:手写实现环境配置,告别卡半天

3台商务办公笔记本实测:手写实现环境配置,告别卡半天 配置环境就卡半天?别怪机器慢,多半是你没选对工具链。在Java、Go或Python的项目现场, 手写实现…

2026/9/22 0:00:41 阅读更多 →
剑帝加点速查手册:3分钟搞懂核心逻辑

剑帝加点速查手册:3分钟搞懂核心逻辑

剑帝加点速查手册:3分钟搞懂核心逻辑 面试被问原理答不上来,是不是常态?别慌。很多开发者对着 GitHub 开源仓库里的代码发呆,看似简单实则暗藏玄机。今天这份【剑帝加点】速查手册,直接带你拆解核心实现,把面试必考的原理讲透。…

2026/9/22 0:00:41 阅读更多 →
手写实现图片压缩网站核心:搞定WebP转换与质量调优

手写实现图片压缩网站核心:搞定WebP转换与质量调优

手写实现图片压缩网站核心:搞定WebP转换与质量调优 复制来的代码跑不通不知道怎么调?别慌,这种“复制粘贴地狱”在开发圈太常见了。尤其是做 图片压缩网站…

2026/9/22 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/22 4:32:41 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/22 4:38:57 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/22 8:51:04 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/21 15:36:51 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/21 15:36:51 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/22 2:43:42 阅读更多 →