Bloomfilter 的應用場景

2022-08-09 13:33:14 字數 724 閱讀 6484

bloomfilter 一般用於檢測某元素是否在集合中存在,它的目標是解決在大資料量情況的元素判定。它的優點是它提供的資料結構具有非常高的時間查詢和空間儲存效率,缺點是可能造成誤判,就是說,它判定某元素在集合中,但是其實有可能他不在集合裡面,當然,反過來說,如果他判定元素不在集合裡面,那麼元素肯定是不在集合裡面的。因此它的應用場景實用於能夠容忍小概率事件的誤判產生的情況,簡而言之,以正確率換空間和時間。

最典型的乙個應用就是黑名單功能,對使用者名稱或者ip或者email進行過濾,每次檢查時用key進行hash後,如果不在黑名單內的,肯定可以通行,如果在的則不允許通過,誤判情況增加乙個排除名單來進行排除。

誤判情況:將正常使用者判定為黑名單使用者

在爬取**url時,要檢測這條url是否已經訪問過。

誤判情況:沒有訪問過的誤判為訪問過

檢查單詞拼寫是否正確

誤判情況:錯誤的單詞誤判為正確。

將磁碟中或者資料庫中資料key存入該結構中,檢測要訪問的資料是否在磁碟或資料庫中,然後再發起訪問,避免空查詢造成磁碟或資料庫壓力。

誤判情況:不存在該資料卻誤判為有該資料。

先查詢本地有無cache,如果沒有則到其他兄弟 cache伺服器上去查詢。為了避免無謂的查詢,在每個cache伺服器上儲存其兄弟伺服器的快取關鍵字,以bloomfilter方式儲存,再去其他cache伺服器查詢之前,先檢查該結構是否有url,如果有存在url,再去對應伺服器查詢。

誤判情況: 對應伺服器不存在該url的快取。

Bloom Filter 資料結構的應用

應用1 儲存字典。大家可能對於 word 的拼寫檢查功能非常了解,當你拼錯乙個單詞的時候,word 會自動將這個單詞用紅線標註出來。word 的具體工作原理不得而知,但是在另乙個拼寫檢查器 unix spell checkers 這個軟體中用到了 bloom filter。unix spell ch...

應用Bloom Filter的幾個小技巧

焦萌2007年1 月29日下面列舉幾個基於標準 bloom filter 的小技巧 1.求兩個集合的並。假設有兩個 bloom filter 分別表示集合s1和 s2,它們位陣列的大小相同且使用同一組雜湊函式,那麼要求表示s1和 s2並集的 bloom filter 只要將s1和 s2的位陣列進行 ...

SAP BTP MTA 應用的應用場景

程式語言 軟體設計架構 如微服務 協議 如 odata 的最新趨勢和進展,以及多層和分布式部署平台的多樣性,加速了由更多 更小 解耦和多樣化的模組構建應用程式的趨勢。在微服務架構下,越來越多的業務應用程式傾向於由使用不同語言和技術開發並部署到各種目標執行時環境的多個部分組成。這種應用程式模組的多樣性...