布隆過濾器原理、特性及短信黑名單過濾業(yè)務(wù)實(shí)現(xiàn)方案
一、 什么是布隆過濾器作用、組成、添加元素流程、查詢?cè)氐牧鞒?、特點(diǎn)誤判、不支持刪除布隆過濾器Bloom Filter是由Burton Howard Bloom于1970年提出的。我們可以把它看作由位數(shù)組和一組哈希函數(shù)組成的數(shù)據(jù)結(jié)構(gòu),它占用空間少并且效率更高但是缺點(diǎn)是其返回的結(jié)果是概率性的而不是非常準(zhǔn)確的。理論情況下添加到集合中的元素越多誤報(bào)的可能性就越大。并且存放在布隆過濾器的數(shù)據(jù)不容易刪除。換句話說是一種用來檢查元素是否存在于指定集合中的數(shù)據(jù)結(jié)構(gòu)這種數(shù)據(jù)結(jié)構(gòu)是高效且性能很好的但缺點(diǎn)是具有一定的錯(cuò)誤識(shí)別率和刪除難度。并且理論情況下添加到集合中的元素越多誤報(bào)的可能性就越大。組成位數(shù)組多個(gè)哈希函數(shù)組成添加元素流程首先對(duì)需要存入的元素進(jìn)行不同的哈希函數(shù)運(yùn)算生成不同的哈希結(jié)果然后將每一個(gè)哈希值對(duì)應(yīng)到位數(shù)組的位置并且將對(duì)應(yīng)的位置下標(biāo)從0改成1。查詢?cè)氐牧鞒虒?duì)于待查詢?cè)厥褂煤吞砑釉赝耆嗤膫€(gè)數(shù)哈希函數(shù)進(jìn)行計(jì)算算出若干個(gè)哈希值映射得到位數(shù)組上對(duì)應(yīng)位置的下標(biāo)進(jìn)行比對(duì)只要有任意一個(gè)位置的值為 0說明該元素一定沒有存入布隆過濾器如果所有的值均為 1則無法確定元素一定存在只能判定元素大概率存在因?yàn)榇嬖谡`報(bào)可能性。特點(diǎn)1、誤判性2、不支持刪除二、布隆過濾器的優(yōu)點(diǎn)和缺點(diǎn)有哪些優(yōu)點(diǎn)1、存儲(chǔ)空間高效僅使用 bit 數(shù)組存儲(chǔ)標(biāo)記不存放原始數(shù)據(jù)同等數(shù)據(jù)量下內(nèi)存遠(yuǎn)小于 List、Set、Map2、讀寫性能高插入與查詢只需要多次哈希運(yùn)算效率很高3、數(shù)據(jù)本身不存儲(chǔ)增強(qiáng)安全性沒有保存原始元素?zé)o法直接從過濾器中還原數(shù)據(jù)缺點(diǎn)1、存在誤報(bào)問題有可能把不存在的元素判定為存在元素?cái)?shù)量越多誤報(bào)概率越高2、難以刪除元素多個(gè)元素會(huì)共享比特位直接置 0 會(huì)影響其他元素判斷3、無法獲得實(shí)際元素三、 發(fā)送業(yè)務(wù)通知短信前要判斷手機(jī)號(hào)碼是否在黑名單1000w實(shí)現(xiàn)思路針對(duì) 1000 萬級(jí)別的手機(jī)號(hào)碼黑名單判斷場(chǎng)景使用布隆過濾器Bloom Filter來實(shí)現(xiàn)具體實(shí)現(xiàn)思路如下1、數(shù)據(jù)初始化把數(shù)據(jù)庫中的1000萬個(gè)黑名單手機(jī)號(hào)全部取出依次通過哈希函數(shù)將所有黑名單手機(jī)號(hào)都添加到布隆過濾器中。2、業(yè)務(wù)收到發(fā)送請(qǐng)求先用手機(jī)號(hào)查詢布隆過濾器使用相同哈希函數(shù)進(jìn)行查詢?nèi)绻^濾器判定不存在則手機(jī)號(hào)不在黑名單允許發(fā)送短信如果過濾器判定存在則有可能在黑名單里因?yàn)椴悸∵^濾器存在誤判的可能所以需要進(jìn)行二次查詢來確定是否真的在黑名單里。

相關(guān)新聞

HDCP版權(quán)保護(hù)_橋接芯片科普05

HDCP版權(quán)保護(hù)_橋接芯片科普05

HDCP 版權(quán)保護(hù):橋接芯片里最容易被忽視的"隱形門禁" 龍迅橋接芯片科普系列 第 05 篇 系列文章:01 選型指南 | 02 DSC 顯示流壓縮 | 03 車載顯示橋接方案 | 04 Type-C 擴(kuò)展塢 | 05 HDCP 版權(quán)保護(hù) | 06 D-PHY vs C-PHY(待寫&#xf…

2026/7/29 8:26:10 閱讀更多
3D打印與Arduino結(jié)合:從零打造會(huì)跳舞的仿生機(jī)器人

3D打印與Arduino結(jié)合:從零打造會(huì)跳舞的仿生機(jī)器人

1. 項(xiàng)目概述:當(dāng)3D打印遇上Arduino,一個(gè)會(huì)跳舞的機(jī)器人誕生了 如果你和我一樣,既沉迷于3D打印機(jī)“無中生有”的魔力,又對(duì)Arduino開源硬件控制現(xiàn)實(shí)世界的能力著迷,那么“精舞堂BOB”這個(gè)項(xiàng)目絕對(duì)能讓你兩眼放光。這不僅僅…

2026/7/29 8:26:10 閱讀更多
共筑國產(chǎn) FPGA 生態(tài)!ALINX 攜車載視頻解決方案亮相 2026 紫光同創(chuàng)開發(fā)者大會(huì)

共筑國產(chǎn) FPGA 生態(tài)!ALINX 攜車載視頻解決方案亮相 2026 紫光同創(chuàng)開發(fā)者大會(huì)

以“算力重構(gòu)、智創(chuàng)無界”為主題的“2026紫光同創(chuàng)開發(fā)者大會(huì)”深圳站與成都站圓滿落幕。本次大會(huì)匯聚了來自通信網(wǎng)絡(luò)、工業(yè)控制、汽車電子、數(shù)據(jù)中心、邊緣AI、測(cè)試測(cè)量等領(lǐng)域的 300 余名工程師、行業(yè)伙伴與生態(tài)開發(fā)者,圍繞國產(chǎn) FPGA 技術(shù)創(chuàng)新、AI 推理系統(tǒng)方案、工…

2026/7/29 9:46:23 閱讀更多
Pinia持久化在UniApp中的實(shí)踐與優(yōu)化

Pinia持久化在UniApp中的實(shí)踐與優(yōu)化

1. 為什么需要Pinia持久化? 在UniApp和小程序開發(fā)中,狀態(tài)管理一直是開發(fā)者面臨的痛點(diǎn)問題。傳統(tǒng)Vuex在跨平臺(tái)兼容性和TypeScript支持上存在明顯短板,而Pinia作為新一代狀態(tài)管理庫,憑借其輕量級(jí)、模塊化和完美的TS支持迅速成為主流…

2026/7/29 9:46:23 閱讀更多
AI驅(qū)動(dòng)的代碼審計(jì):從模式匹配到語義理解,提升SAST精準(zhǔn)度

AI驅(qū)動(dòng)的代碼審計(jì):從模式匹配到語義理解,提升SAST精準(zhǔn)度

1. 項(xiàng)目概述:當(dāng)AI成為你的代碼審計(jì)搭檔 最近和幾個(gè)做安全開發(fā)的朋友聊天,發(fā)現(xiàn)一個(gè)挺有意思的現(xiàn)象:大家手里的代碼審計(jì)工具越來越“聰明”了。以前搞靜態(tài)分析,基本就是靠規(guī)則引擎掃一遍,報(bào)出一堆誤報(bào),然后人…

2026/7/29 9:46:23 閱讀更多
視頻孿生三劍客的技術(shù)范式迭代:數(shù)學(xué)幾何驅(qū)動(dòng)空間重構(gòu) VS 傳統(tǒng)多邊形貼圖建模技術(shù)對(duì)比解析白皮書 V1.0

視頻孿生三劍客的技術(shù)范式迭代:數(shù)學(xué)幾何驅(qū)動(dòng)空間重構(gòu) VS 傳統(tǒng)多邊形貼圖建模技術(shù)對(duì)比解析白皮書 V1.0

視頻孿生三劍客的技術(shù)范式迭代:數(shù)學(xué)幾何驅(qū)動(dòng)空間重構(gòu) VS 傳統(tǒng)多邊形貼圖建模出品單位:鏡像視界(浙江)科技有限公司 學(xué)術(shù)支撐:華東師范大學(xué)鏡像視界浙江普陀時(shí)空大數(shù)據(jù)應(yīng)用技術(shù)聯(lián)合研究院 版本:V1.0&#xf…

2026/7/29 9:46:23 閱讀更多
從二維監(jiān)控到三維鏡像:鏡像視界攜手三劍客,如何用空間AI推演重塑城市安防新范式?技術(shù)白皮書V1.0

從二維監(jiān)控到三維鏡像:鏡像視界攜手三劍客,如何用空間AI推演重塑城市安防新范式?技術(shù)白皮書V1.0

從二維監(jiān)控到三維鏡像:鏡像視界攜手三劍客,如何用空間AI推演重塑城市安防新范式技術(shù)白皮書V1.0出品單位:鏡像視界(浙江)科技有限公司 學(xué)術(shù)支撐:華東師范大學(xué)鏡像視界浙江普陀時(shí)空大數(shù)據(jù)應(yīng)用技術(shù)聯(lián)合研究院 …

2026/7/29 9:46:23 閱讀更多
Webhook端點(diǎn)防護(hù)實(shí)戰(zhàn):基于Nginx的智能限流與IP管理方案

Webhook端點(diǎn)防護(hù)實(shí)戰(zhàn):基于Nginx的智能限流與IP管理方案

1. 項(xiàng)目概述:為什么你的Webhook端點(diǎn)需要一個(gè)“智能門衛(wèi)” 如果你正在使用Webhook.site來調(diào)試、測(cè)試或臨時(shí)接收來自各種服務(wù)的Webhook回調(diào),那你一定遇到過這樣的場(chǎng)景:某個(gè)服務(wù)因?yàn)榕渲缅e(cuò)誤,在短時(shí)間內(nèi)瘋狂地向你的端點(diǎn)發(fā)送了成千上…

2026/7/29 9:36:23 閱讀更多
面試官大笑:“一個(gè)任務(wù)拆給 5 個(gè) Subagent 并行跑,不比 1 個(gè)快 5 倍?“我搖頭:“快不了,還可能更慢“

面試官大笑:“一個(gè)任務(wù)拆給 5 個(gè) Subagent 并行跑,不比 1 個(gè)快 5 倍?“我搖頭:“快不了,還可能更慢“

前兩個(gè)月,我在重構(gòu) AlgoMooc 網(wǎng)站過程中,發(fā)現(xiàn)一個(gè)問題:在 Claude Code 里把一個(gè)任務(wù)拆給 5 個(gè) Subagent 并行跑,結(jié)果可能比 1 個(gè) agent 從頭干到尾還慢? 大多數(shù)人的第一反應(yīng)是反過來的:活是并行干的&#…

2026/7/29 0:15:24 閱讀更多
# 鴻蒙 HarmonyOS 應(yīng)用開發(fā)實(shí)戰(zhàn)(第25期)|骰子(Dice Roller)— Unicode 符號(hào)與動(dòng)畫渲染精講

# 鴻蒙 HarmonyOS 應(yīng)用開發(fā)實(shí)戰(zhàn)(第25期)|骰子(Dice Roller)— Unicode 符號(hào)與動(dòng)畫渲染精講

一、應(yīng)用概述 骰子(Dice Roller) 是一款經(jīng)典的休閑娛樂應(yīng)用,模擬了真實(shí)擲骰子的過程。應(yīng)用投擲兩個(gè)骰子(六面標(biāo)準(zhǔn)骰),使用 Unicode 骰面符號(hào)直觀展示每個(gè)骰子的點(diǎn)數(shù),并伴有快速滾動(dòng)的動(dòng)畫效果?!?/p>

2026/7/29 0:15:24 閱讀更多