布隆過濾器(Bloom Filter)的簡介, 優缺點以及使用場景


一 :什么是布隆過濾器?

(Bloom Filter)是由布隆(Burton Howard Bloom)在1970年提出的。它實際上是由一個很長的二進制向量和一系列隨機映射函數組成,布隆過濾器可以用於檢索一個元素是否在一個集合中。

 

二:使用布隆過濾器的 優勢 和 缺點?

優點:

它的優點是空間效率和查詢時間都遠遠超過一般的算法。

這是個非常神奇的數據結構,僅需極少的空間就可以判斷一個元素是不是在一個集合之內,判斷key是否存在。

 

缺點:

有一定的誤識別率(假正例False positives,即Bloom Filter報告某一元素存在於某集合中,但是實際上該元素並不在集合中)和刪除困難,

但是沒有識別錯誤的情形(即假反例False negatives,如果某個元素確實沒有在該集合中,那么Bloom Filter 是不會報告該元素存在於集合中的,所以不會漏報)。

 

三:布隆過濾器適用的場景?

我們可以把所有的用戶ID建立一個布隆過濾器,這樣當那些黑客的請求過來以后,先用這個過濾器攔截一下,

如果黑客要訪問的用戶ID不在這個過濾器中,我們就直接把他過濾出去。”

金無足赤,人無完人,Bloom Filter也會有誤報,即使某個用戶ID不在集合中,他也可能報告說在集合中。

這個時候Tomcat就認為這是一個合法的用戶ID,就去Redis中查,不存在,然后到我這里查,還是不存在。”

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM