簡體   English   中英

布隆過濾器使用 Redis 和 Node.js

[英]Bloom Filter usign Redis and Node.js

我正在使用@albert-team/rebloom package 使用本地 Redis 實現布隆過濾器

const { BloomFilter } = require('@albert-team/rebloom')
const main = async () => {
    const filter = new BloomFilter('filtername', {
      host: 'localhost',
      port: 6379,
    })
    await filter.connect()
  
    console.log(await filter.add('item0')) // 1
    console.log(await filter.exists('item0')) // 1
    console.log(await filter.exists('item1')) // 0
  
    await filter.disconnect()
  }
  
  main().catch((err) => console.error(err))

但我得到以下錯誤。 TypeError: multi.setbit 不是 function 在 /Users/rohit/Downloads/Microservices/POC/node_modules/bloom-redis/lib/index.js:61:15

兩個問題:

  1. 我該如何解決上述問題?
  2. 是否還有其他 package 方法可用於布隆過濾器實施?

節點 Redis現在支持 Redis Bloom。 像這樣工作:

import { createClient } from 'redis';

const client = createClient();
await client.connect();

await client.bf.reserve('mybloom', 0.01, 1000);
await client.bf.add('mybloom', 'foo'),
await client.bf.mAdd('mybloom', [ 'bar', 'baz' ]);

const singleExists = await client.bf.exists('mybloom', 'foo');  // true
const multiExists = await client.bf.mExists('mybloom', [ 'baz', 'qux' ]);  // [ true, false ]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM