基於Redis的Java布隆過濾器

經過在優銳課的java學習分享中,對於Redis有了更深的理解。瞭解如何經過Redis Java客戶端Redisson在Java和Redis中使用Bloom過濾器。咱們能夠看到,碼了不少專業的相關知識, 分享給你們參考學習。

 

布隆過濾器是一種機率數據結構,用於有效測試集合中是否存在元素。 使用Bloom篩選器能夠幫助減小鍵/值對的昂貴磁盤查找次數。java

 

使用Java編程語言,開發人員能夠使用各類預先構建的Bloom過濾器數據結構,包括Google的Guava核心Java庫中的「 BloomFilter類」。redis

 

 

 

Redis是一種開源的內存中數據結構存儲,可用於實現NoSQL數據庫。 可是,Java與開箱即用的Redis不兼容。數據庫

 

Java開發人員必須使用Redis Java客戶端才能訪問功能,例如Bloom過濾器。 在本文中,咱們將討論如何經過Redis Java客戶端Redisson在Java和Redis中使用Bloom過濾器。編程

 

使用Redisson在Redis和Java中使用Bloom過濾器

 

Redisson是Redis的超快速,輕量級Java客戶端,提供許多常見的Java對象和功能,包括Bloom過濾器。數據結構

 

如下示例代碼演示瞭如何經過RBloomFilter接口在Redisson中使用Bloom過濾器:架構

 

Java編程語言

 

 1 RBloomFilter<SomeObject> bloomFilter = redisson.getBloomFilter("sample");
 2 
 3 // initialize Bloom filter with
 4 
 5 // expectedInsertions = 55000000
 6 
 7 // falseProbability = 0.03
 8 
 9 bloomFilter.tryInit(55000000L, 0.03);
10 
11 bloomFilter.add(new SomeObject("field1Value", "field2Value"));
12 
13 bloomFilter.add(new SomeObject("field5Value", "field8Value"));
14 
15 bloomFilter.contains(new SomeObject("field1Value", "field8Value"));
16 
17 bloomFilter.count();

 

 

布隆過濾器是一種機率數據結構:它們能夠明確地指出元素不存在於集合中,而只能說元素可能存在於集合中。 falseProbability參數控制給定的RBloomFilter出現假陽性的可能性。分佈式

 

expectedInsertions參數定義每一個元素的預期插入次數。 RBloomFilter對象最多可包含2 ^ 32位。學習

 

Redisson還經過RClusteredBloomFilter接口在Redis中支持分佈式Bloom過濾器。 RClusteredBloomFilter的內存效率更高,可縮小全部Redis節點上使用的內存。 RClusteredBloomFilter對象最多可包含2 ^ 64位。 請注意,RClusteredBloomFilter僅在Redisson的集羣模式下可用。測試

 

如下示例代碼演示瞭如何使用RClusteredBloomFilter接口:

 

Java

 

 1  RClusteredBloomFilter<SomeObject> bloomFilter = redisson.getClusteredBloomFilter("sample");
 2 
 3 // initialize Bloom filter with
 4 
 5 // expectedInsertions = 255000000
 6 
 7 // falseProbability = 0.03
 8 
 9 
10 bloomFilter.tryInit(255000000L, 0.03)
11 
12 
13 bloomFilter.add(new SomeObject("field1Value", "field2Value"));
14 
15 
16 bloomFilter.add(new SomeObject("field5Value", "field8Value"));
17 
18 
19 bloomFilter.contains(new SomeObject("field1Value", "field8Value"));

 

 

 

 

文章寫道這裏,若有 不足之處,歡迎補充評論。

關注我,和你一塊兒細說架構那些事。優銳課

相關文章
相關標籤/搜索