Bloomfilter 的應用情境

來源:互聯網
上載者:User

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

       目前的應用情境比較多,整理如下:

  • 黑名單

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

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

  • 爬蟲重複URL檢測

    在爬取網站URL時,要檢測這條URL是否已經訪問過。

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

  • 字典錯誤修正

     檢查單詞拼字是否正確

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

  • 磁碟檔案檢測

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

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

  •    CDN(squid)代理緩衝技術

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

  誤判情況: 對應伺服器不存在該URL的緩衝。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.