как использовать Bloom-Redis в node js - PullRequest
1 голос
/ 25 апреля 2020

Мне нужно использовать фильтр Блума с 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
})

...