Мне нужно использовать фильтр Блума с Redis в nodejs для проверки дубликатов в потоке данных. Для этой цели я использовал пакет bloom-redis nodejs. Но документация совсем не полезна. Я не могу понять, как проверить, присутствует ли элемент в фильтре или не использует функцию содержащий с помощью обратного вызова. Я просмотрел код пакета bloom-redis и попытался напечатать то, что выводит параметр обратного вызова, когда элемент присутствует в фильтре, а элемент отсутствует. К сожалению, параметры обратного вызова одинаковы в обоих случаях (val = null, isAbsent = true). ТАК, как я могу проверить наличие элемента?
Ниже приведен мой код, где я пытался проверить наличие элемента:
bloom = require('bloom-redis');
var client = redis.createClient();
bloom.connect(client);
filter = new bloom.BloomFilter({ key : 'mykey',
size:0.002,
numHashes:5 });
filter.add("sam")
filter.add("richa")
filter.contains("element-that-is-not-presnet",function(val,isAbsent){
console.log(val) //return null
console.log(isAbsent) //returns true
})
filter.contains("richa",function(val,isAbsent){
console.log(val) //returns null
console.log(isAbsent) //returns true
})