全部产品
Search
文档中心

Tair (Redis® OSS-Compatible):Bloom

更新时间:Jul 30, 2025

Bloom adalah struktur data probabilistik yang hemat ruang dan menggunakan memori minimal untuk memeriksa apakah suatu elemen ada di antara sejumlah besar data. TairBloom merupakan implementasi dari filter Bloom yang dapat diskalakan (SBFs). Fiturnya mencakup skalabilitas dinamis sambil menjaga tingkat positif palsu yang stabil selama proses penskalaan.

Ikhtisar

Bitmap pada struktur data Redis seperti hash, set, dan string dapat digunakan untuk mengimplementasikan fitur serupa dengan TairBloom. Namun, struktur data ini mungkin mengonsumsi banyak memori atau gagal mempertahankan tingkat positif palsu yang stabil selama penskalaan dinamis. Oleh karena itu, TairBloom ideal untuk memeriksa keanggotaan dalam kumpulan data besar sambil mengizinkan adanya tingkat positif palsu tertentu. Filter Bloom bawaan TairBloom dapat digunakan tanpa enkapsulasi lebih lanjut atau pembuatan filter tambahan pada perangkat lokal Anda.

Fitur

  • Penggunaan memori rendah.

  • Skalabilitas dinamis.

  • Tingkat positif palsu yang stabil selama penskalaan.

Skenario tipikal

TairBloom dapat digunakan dalam sistem rekomendasi dan crawler di industri seperti live-streaming, musik, dan e-commerce.

  • Sistem rekomendasi: TairBloom mencatat ID artikel yang mungkin telah direkomendasikan, menanyakan artikel-artikel tersebut, menentukan artikel duplikat, lalu merekomendasikan artikel baru yang mungkin diminati pengguna.

  • Sistem crawler: TairBloom menyaring URL yang telah di-crawl untuk meningkatkan produktivitas.

Praktik terbaik

Membangun sistem rekomendasi berdasarkan TairBloom

TairBloom mencatat ID artikel yang mungkin telah direkomendasikan, menanyakan artikel-artikel tersebut, menentukan artikel duplikat, lalu merekomendasikan artikel baru yang mungkin diminati pengguna. Pseudocode:

void recommendedSystem(userid) {
    while (true) {
        // Dapatkan ID artikel acak atau ID artikel yang diinginkan.
        docid = getDocByRandom()
        if (bf.exists(userid, docid)) {
            // Jika artikel mungkin telah direkomendasikan kepada pengguna, artikel berikutnya direkomendasikan.
            continue;
        } else {
            // Jika artikel belum direkomendasikan kepada pengguna, artikel tersebut direkomendasikan.
            sendRecommendMsg(docid);
            // Jika artikel telah direkomendasikan, ID artikel dicatat dalam filter Bloom.
            bf.add(userid, docid);
            break;
        }
    }
}

Mengoptimalkan sistem crawler berdasarkan TairBloom

TairBloom menyaring URL yang mungkin telah di-crawl untuk meningkatkan produktivitas. Pseudocode:

bool crawlerSystem( ) {
    while (true) {
        // Dapatkan URL yang ingin Anda crawl.
        url = getURLFromQueue()
        if (bf.exists(url_bloom, url)) {
            // Jika URL mungkin telah di-crawl, URL dilewati.
            continue;
        } else {
            // Crawl URL ini.
            doDownload(url)
            // Tambahkan URL ini ke filter Bloom.
            bf.add(url_bloom, url);
        }
    }
}

Praktik terbaik lainnya

Cara kerjanya

TairBloom adalah implementasi dari SBFs. Fiturnya mencakup skalabilitas dinamis sambil menjaga tingkat positif palsu yang stabil. SBFs adalah filter Bloom yang dioptimalkan. Bagian berikut menjelaskan prinsip dasar filter Bloom dan SBFs.

  • Filter Bloom

    Filter Bloom adalah struktur data probabilistik yang hemat ruang, dibayangkan oleh Burton Howard Bloom pada tahun 1970, yang digunakan untuk menguji apakah sebuah elemen merupakan anggota dari suatu set.

    Filter Bloom baru adalah larik bit dari m bit, semuanya disetel ke 0. Filter Bloom juga mencakup satu set fungsi hash k yang berbeda untuk menghasilkan distribusi acak seragam. k adalah konstanta yang kurang dari m. Saat Anda menambahkan elemen ke filter Bloom, fungsi hash k memetakan elemen-elemen ini ke k bit dalam larik bit dan menyetel k bit menjadi nilai 1. Dalam hal ini, satu bit dapat digunakan bersama oleh beberapa data. Gambar berikut menunjukkan cara memasukkan X1 dan X2 ke dalam filter Bloom yang mencakup 3 fungsi hash.

    Saat Anda menanyakan elemen dalam filter Bloom, Anda dapat menggunakan fungsi hash k untuk mendapatkan k bit. Jika semua k bit memiliki nilai 1, elemen tersebut ada dalam filter Bloom. Sebaliknya, elemen tersebut tidak ada. Gambar berikut menunjukkan cara menanyakan Y1 dan Y2 dalam filter Bloom.

    Gambar sebelumnya menunjukkan bahwa meskipun Y2 tidak pernah dimasukkan ke dalam filter Bloom, Y2 ditentukan ada dalam filter Bloom. Skenario ini menunjukkan bahwa filter Bloom memiliki tingkat positif palsu. Analisis sebelumnya menunjukkan bahwa filter Bloom memiliki fitur berikut:

    • Sebuah bit dapat digunakan bersama oleh beberapa data.

    • Filter Bloom memiliki tingkat positif palsu dan tingkat tersebut meningkat seiring dengan bertambahnya jumlah elemen dalam filter Bloom. Namun, filter Bloom tidak memiliki tingkat negatif palsu. Jika elemen ada dalam filter Bloom, elemen tersebut selalu ditentukan ada.

    • Elemen dapat ditambahkan ke filter Bloom tetapi tidak dapat dihapus dari filter Bloom. Alasannya adalah bit dapat digunakan bersama. Jika Anda menghapus elemen dari filter Bloom, elemen lain dalam filter Bloom terpengaruh.

  • Filter Bloom yang Dapat Diskalakan

    Saat jumlah elemen meningkat, tingkat positif palsu juga meningkat. Jika Anda ingin mempertahankan tingkat positif palsu yang stabil, Anda harus menambah ukuran filter Bloom secara proporsional. Namun, ukuran tersebut tidak dapat ditingkatkan karena batasan struktural. SBFs muncul sebagai tanggapan atas masalah ini. SBFs adalah jenis baru filter Bloom yang menggabungkan beberapa filter Bloom menjadi satu.

    Gambar berikut menunjukkan model dasar SBF. SBF ini memiliki dua lapisan: BF0 dan BF1. Awalnya, SBF hanya berisi lapisan BF0. Jika Anda memasukkan elemen a, b, dan c ke dalam SBF ini dan lapisan BF0 tidak cukup besar untuk mempertahankan tingkat positif palsu yang ditentukan, lapisan BF1 dibuat untuk meningkatkan ukuran SBF. Kemudian, elemen d, e, dan f dimasukkan ke lapisan BF1. Lapisan baru bernama BF2 dibuat jika lapisan BF1 juga tidak dapat mempertahankan tingkat positif palsu yang ditentukan. Untuk informasi lebih lanjut, lihat Filter Bloom yang Dapat Diskalakan.

    Penting

    Selama penskalaan dinamis TairBloom, kapasitas lapisan baru adalah dua kali lipat dari lapisan sebelumnya, dan ruang memori yang ditempati adalah empat kali lipat dari lapisan sebelumnya.

    Dengan setiap lapisan tambahan, beberapa filter Bloom mungkin perlu dilalui selama kueri. SBFs hanya menyisipkan data ke lapisan terakhir dan menanyakan data dari lapisan terakhir hingga lapisan BF0. Oleh karena itu, peningkatan skala TairBloom dapat mengakibatkan pembuatan kunci besar dan dapat menyebabkan penurunan kinerja, dengan tingkat penurunan meningkat seiring dengan bertambahnya jumlah elemen.

    Dalam penggunaan aktual, kami sarankan Anda mempertimbangkan peningkatan skala TairBloom hanya sebagai tindakan pencegahan dan tidak sering melakukan peningkatan skala TairBloom. Pastikan memori yang cukup dicadangkan untuk instans untuk mencegah kegagalan tulis setelah Anda meningkatkan skala TairBloom, yang dapat menyebabkan operasi pengusiran data yang berkepanjangan dan menghambat pemrosesan permintaan.

    Anda dapat menjalankan perintah BF.INFO untuk memeriksa apakah kunci akan memicu peningkatan skala. Saat jumlah item di lapisan terbaru sama dengan kapasitas, ini menunjukkan bahwa peningkatan skala akan segera terjadi.

    Jika kapasitas aktual melebihi batas yang telah ditentukan, Anda dapat meningkatkan skala TairBloom untuk memastikan operasi tulis untuk bisnis dapat dilakukan pada TairBloom untuk mencegah insiden langsung. Setelah Anda meningkatkan skala TairBloom, kami sarankan Anda segera membangun ulang untuk meningkatkan kinerja dan mengurangi risiko terkait peningkatan skala di masa depan.

Prasyarat

Instans Tair berbasis DRAM telah dibuat.

Catatan

Versi minor terbaru menyediakan lebih banyak fitur dan stabilitas yang lebih tinggi. Kami sarankan Anda memperbarui instans Anda ke versi minor terbaru. Untuk informasi lebih lanjut, lihat Perbarui versi minor instans. Jika instans Anda adalah kluster atau pemisahan baca/tulis instans, kami sarankan Anda memperbarui node proxy dalam instans ke versi minor terbaru. Ini memastikan bahwa semua perintah dapat dijalankan sesuai harapan.

Peringatan

  • Data TairBloom yang ingin Anda kelola disimpan dalam instans Tair.

  • Kapasitas awal dan tingkat positif palsu yang memenuhi persyaratan Anda harus dihitung terlebih dahulu. Untuk membuat kunci TairBloom yang memiliki kapasitas jauh lebih dari 100 elemen, jalankan perintah BF.RESERVE bukan perintah BF.ADD.

    Berikut ini menunjukkan perbedaan antara perintah BF.ADD dan perintah BF.RESERVE:

    • BF.ADD (juga dikenal sebagai BF.MADD): Jika kunci TairBloom tidak ada saat perintah ini dijalankan, kunci tersebut dibuat secara otomatis. Kapasitas default kunci adalah 100, dan tingkat positif palsu default kunci adalah 0,01. Jika Anda memerlukan kapasitas kunci yang jauh lebih dari 100, Anda hanya dapat meningkatkan skala kunci untuk mendukung lebih banyak elemen.

    • BF.RESERVE (juga dikenal sebagai BF.INSERT): Kapasitas awal ditentukan saat perintah ini dijalankan. Perintah ini menentukan kapasitas awal di lapisan pertama kunci. Jika kunci berisi lebih sedikit lapisan filter Bloom, kecepatan kueri kunci lebih cepat.

    Catatan

    Sebagai contoh, asumsikan Anda ingin memasukkan 10.000.000 elemen ke dalam kunci dan mengizinkan tingkat positif palsu sebesar 0,01. Ukuran kunci yang dibuat adalah 176 MB jika Anda menggunakan perintah BF.ADD, atau 16 MB jika Anda menggunakan perintah BF.RESERVE.

    Tabel berikut mencantumkan berbagai ukuran kunci yang didukung oleh perintah BF.RESERVE dan kapasitas awal serta tingkat positif palsu yang sesuai.

    Kapasitas (jumlah elemen)

    positif salah:0,01

    positif salah:0,001

    positif salah:0,0001

    100.000

    0,12 MB

    0,25 MB

    0,25 MB

    1.000.000

    2 MB

    2 MB

    4 MB

    10.000.000

    16 MB

    32 MB

    32 MB

    100.000.000

    128 MB

    256 MB

    256 MB

    1.000.000.000

    2 GB

    2 GB

    4 GB

    Saat Anda membuat kunci dengan kapasitas ultra-tinggi, Anda harus memperhatikan presisi tingkat kesalahan. Kunci dengan kapasitas ultra-tinggi dan presisi ultra-tinggi mungkin gagal dibuat karena memori instans tidak mencukupi.

  • Ukuran kunci tidak dapat dikurangi karena elemen hanya dapat ditambahkan tetapi tidak dapat dihapus dari kunci. Untuk mencegah masalah kapasitas seperti kesalahan memori habis (OOM), kami sarankan Anda menerapkan solusi berikut:

    • Pisahkan data bisnis. Anda dapat membagi data bisnis untuk mencegah kunci besar yang memengaruhi kinerja kueri. Jika kunci besar ada, sebagian besar permintaan dibuat ke instans yang berisi kunci-kunci ini. Hal ini dapat menyebabkan hotkeys atau bahkan permintaan yang tidak seimbang.

      Anda dapat mendistribusikan data yang dipisahkan ke beberapa kunci. Jika data bisnis Anda disimpan dalam instans kluster Tair, Anda dapat mendistribusikan data yang dipisahkan ke beberapa node dalam instans untuk memastikan bahwa kunci besar dan hotkeys tidak terjadi.

    • Bangun ulang kunci secara berkala. Jika memungkinkan, Anda dapat menjalankan perintah DEL untuk menghapus data dari kunci, lalu menyisipkan data dari database backend ke dalam kunci untuk mengelola ukuran kunci.

      Anda juga dapat membuat beberapa kunci untuk digunakan secara bergantian. Dengan cara ini, ukuran kunci tunggal tetap sesuai. Manfaat dari solusi ini adalah Anda hanya perlu membuat kunci sekali. Namun, beberapa kunci harus dibuat dan beberapa memori mungkin terbuang.

Perintah yang didukung

Tabel 1. Perintah TairBloom

Perintah

Sintaksis

Deskripsi

BF.RESERVE

BF.RESERVE kunci tingkat_kesalahan kapasitas

Membuat kunci TairBloom kosong dengan kapasitas dan tingkat positif palsu yang ditentukan. Parameter kapasitas menentukan kapasitas kunci dan parameter tingkat_kesalahan menentukan tingkat positif palsu kunci.

BF.ADD

BF.ADD kunci item

Menambahkan elemen ke kunci TairBloom.

BF.MADD

BF.MADD kunci item [item ...]

Menambahkan beberapa elemen ke kunci TairBloom.

BF.EXISTS

BF.EXISTS kunci item

Memeriksa apakah elemen ada dalam kunci TairBloom.

BF.MEXISTS

BF.MEXISTS kunci item [item ...]

Memeriksa apakah beberapa elemen ada dalam kunci TairBloom.

BF.INSERT

BF.INSERT kunci [CAPACITY cap] [ERROR error] [NOCREATE] ITEMS item [item ...]

Menambahkan beberapa elemen ke kunci TairBloom. Jika kunci tidak ada, Anda dapat menentukan apakah akan membuat kunci. Anda juga dapat menentukan kapasitas dan tingkat positif palsu kunci.

BF.INFO

BF.INFO kunci

Mengambil informasi tentang kunci TairBloom. Informasi tersebut mencakup jumlah lapisan, jumlah item di setiap lapisan, dan tingkat positif palsu.

DEL

DEL kunci [kunci ...]

Menghapus satu atau lebih kunci TairBloom.

Catatan

Elemen yang sudah ditambahkan ke kunci tidak dapat dihapus. Anda dapat menjalankan perintah DEL untuk menghapus semua data dari kunci.

Catatan

Daftar berikut menjelaskan konvensi sintaksis perintah yang digunakan dalam topik ini:

  • Kata kunci huruf besar: menunjukkan kata kunci perintah.

  • Teks miring: menunjukkan variabel.

  • [opsi]: menunjukkan bahwa parameter yang terlampir dalam tanda kurung siku bersifat opsional. Parameter yang tidak dilampirkan dalam tanda kurung siku harus ditentukan.

  • A|B: menunjukkan bahwa parameter yang dipisahkan oleh garis vertikal (|) saling eksklusif. Hanya satu dari parameter tersebut yang dapat ditentukan.

  • ...: menunjukkan bahwa parameter sebelum simbol ini dapat diulang beberapa kali.

BF.RESERVE

Item

Deskripsi

Sintaksis

BF.RESERVE kunci tingkat_kesalahan kapasitas

Kompleksitas waktu

O(1)

Deskripsi perintah

Membuat kunci TairBloom kosong dengan kapasitas dan tingkat positif palsu yang ditentukan. Parameter kapasitas menentukan kapasitas kunci dan parameter tingkat_kesalahan menentukan tingkat positif palsu kunci.

Parameter

  • Kunci: nama kunci yang ingin Anda kelola dengan menjalankan perintah ini.

  • tingkat_kesalahan: tingkat positif palsu yang diharapkan. Nilai parameter ini harus antara 0 dan 1. Nilai yang lebih rendah menunjukkan akurasi, penggunaan memori, dan penggunaan CPU kunci yang lebih tinggi.

  • kapasitas: kapasitas awal kunci. Parameter ini menentukan jumlah maksimum elemen yang dapat ditambahkan ke kunci.

    Saat jumlah elemen yang ditambahkan ke kunci melebihi nilai kapasitas, lapisan filter Bloom ditambahkan untuk kunci tersebut. Proses ini dapat menurunkan kinerja kueri kunci. Setiap kali lapisan filter Bloom ditambahkan, kapasitas kunci meningkat. Dalam hal ini, jika Anda melakukan kueri pada kunci, beberapa lapisan filter Bloom mungkin perlu dilalui. Jika beban kerja Anda memerlukan kinerja tinggi, kami sarankan Anda menambahkan elemen ke kunci berdasarkan persyaratan bisnis Anda untuk mencegah penskalaan otomatis.

Output

  • Jika operasi berhasil, OK dikembalikan.

  • Jika tidak, pesan kesalahan dikembalikan.

Contoh

Perintah contoh:

BF.RESERVE BFKEY 0.01 100

Output contoh:

OK

BF.ADD

Item

Deskripsi

Sintaksis

BF.ADD kunci item

Kompleksitas waktu

O(log N), di mana N menentukan jumlah lapisan filter Bloom.

Deskripsi perintah

Menambahkan elemen ke kunci TairBloom.

Catatan

Jika kunci tidak ada, kunci dibuat secara otomatis. Kapasitas default kunci adalah 100, dan tingkat positif palsu default kunci adalah 0,01.

Parameter

  • Kunci: nama kunci yang ingin Anda kelola dengan menjalankan perintah ini.

  • item: elemen yang ingin Anda tambahkan ke kunci.

Output

  • Jika elemen tidak ada, elemen ditambahkan dan nilai 1 dikembalikan.

  • Jika elemen mungkin sudah ada, elemen tidak ditambahkan atau diperbarui dan nilai 0 dikembalikan.

  • Jika tidak, pesan kesalahan dikembalikan.

Contoh

Perintah contoh:

BF.ADD BFKEY item1

Output contoh:

(integer) 1

BF.MADD

Item

Deskripsi

Sintaksis

BF.MADD kunci item [item ...]

Kompleksitas waktu

O(log N), di mana N menentukan jumlah lapisan filter Bloom.

Deskripsi perintah

Menambahkan beberapa elemen ke kunci TairBloom.

Catatan

Jika kunci tidak ada, kunci dibuat secara otomatis. Kapasitas default kunci adalah 100, dan tingkat positif palsu default kunci adalah 0,01.

Parameter

  • Kunci: nama kunci yang ingin Anda kelola dengan menjalankan perintah ini.

  • item: elemen yang ingin Anda tambahkan ke kunci. Beberapa elemen dapat ditentukan.

Output

  • Jika elemen tidak ada, elemen ditambahkan dan nilai 1 dikembalikan.

  • Jika elemen mungkin sudah ada, elemen tidak ditambahkan atau diperbarui dan nilai 0 dikembalikan.

  • Jika tidak, pesan kesalahan dikembalikan.

Contoh

Perintah contoh:

BF.MADD BFKEY item1 item2 item3

Output contoh:

(integer) 1
(integer) 1
(integer) 1

BF.EXISTS

Item

Deskripsi

Sintaksis

BF.EXISTS kunci item

Kompleksitas waktu

O(log N), di mana N menentukan jumlah lapisan filter Bloom.

Deskripsi perintah

Memeriksa apakah elemen ada dalam kunci TairBloom.

Parameter

  • Kunci: nama kunci yang ingin Anda kelola dengan menjalankan perintah ini.

  • item: elemen yang ingin Anda tanyakan.

Output

  • Jika elemen tidak ada, nilai 0 dikembalikan.

  • Jika elemen mungkin ada, nilai 1 dikembalikan.

  • Jika tidak, pesan kesalahan dikembalikan.

Contoh

Perintah contoh:

BF.EXISTS BFKEY item1

Output contoh:

(integer) 1

BF.MEXISTS

Item

Deskripsi

Sintaksis

BF.MEXISTS kunci item [item ...]

Kompleksitas waktu

O(log N), di mana N menentukan jumlah lapisan filter Bloom.

Deskripsi perintah

Memeriksa apakah beberapa elemen ada dalam kunci TairBloom.

Parameter

  • Kunci: nama kunci yang ingin Anda kelola dengan menjalankan perintah ini.

  • item: elemen yang ingin Anda tanyakan. Beberapa elemen dapat ditentukan.

Output

  • Jika elemen tidak ada, nilai 0 dikembalikan.

  • Jika elemen mungkin ada, nilai 1 dikembalikan.

  • Jika tidak, pesan kesalahan dikembalikan.

Contoh

Perintah contoh:

BF.MEXISTS BFKEY item1 item5

Output contoh:

(integer) 1
(integer) 0

BF.INSERT

Item

Deskripsi

Sintaksis

BF.INSERT kunci [CAPACITY cap] [ERROR error] [NOCREATE] ITEMS item [item ...]

Kompleksitas waktu

O(log N), di mana N menentukan jumlah lapisan filter Bloom.

Deskripsi perintah

Menambahkan beberapa elemen ke kunci TairBloom. Jika kunci tidak ada, Anda dapat menentukan apakah akan membuat kunci. Anda juga dapat menentukan kapasitas dan tingkat positif palsu kunci.

Parameter

  • Kunci: nama kunci yang ingin Anda kelola dengan menjalankan perintah ini.

  • kapasitas: kapasitas awal kunci. Parameter ini menentukan jumlah maksimum elemen yang dapat ditambahkan ke kunci. Jika kunci ada, parameter ini diabaikan.

    Jika jumlah elemen yang ditambahkan ke kunci melebihi nilai kapasitas, lapisan filter Bloom lainnya secara otomatis ditambahkan untuk kunci tersebut.

  • tingkat_kesalahan: tingkat positif palsu yang diharapkan. Nilai parameter ini harus antara 0 dan 1. Nilai yang lebih rendah menunjukkan akurasi, penggunaan memori, dan penggunaan CPU kunci yang lebih tinggi.

  • NOCREATE: menentukan bahwa kunci tidak dibuat secara otomatis jika kunci tidak ada. Parameter ini tidak dapat ditentukan bersamaan dengan parameter kapasitas atau tingkat_kesalahan.

  • item: elemen yang ingin Anda tambahkan. Beberapa elemen dapat ditentukan.

Output

  • Jika elemen tidak ada, elemen ditambahkan dan nilai 1 dikembalikan.

  • Jika elemen mungkin sudah ada, elemen tidak ditambahkan atau diperbarui dan nilai 0 dikembalikan.

  • Jika tidak, pesan kesalahan dikembalikan.

Contoh

Perintah contoh:

BF.INSERT bfkey1 CAPACITY 10000 ERROR 0.001 ITEMS item1 item2 item3

Output contoh:

(integer) 1
(integer) 1
(integer) 1

BF.INFO

Item

Deskripsi

Sintaksis

BF.INFO kunci

Kompleksitas waktu

O(log N), di mana N menentukan jumlah lapisan filter Bloom.

Deskripsi perintah

Mengambil informasi tentang kunci TairBloom. Informasi tersebut mencakup jumlah lapisan, jumlah item di setiap lapisan, dan tingkat positif palsu.

Parameter

  • Kunci: nama kunci yang ingin Anda kelola dengan menjalankan perintah ini.

Output

  • Jika operasi berhasil, informasi tentang kunci TairBloom dikembalikan.

  • Jika tidak, pesan kesalahan dikembalikan.

Contoh

Perintah contoh:

BF.INFO bk1

Output contoh:

1) "total_items:6,num_blooms:2"
2) "bytes:4 bits:32 hashes:7 hashwidth:64 capacity:3 items:3 error_ratio:0.01"
3) "bytes:16 bits:128 hashes:9 hashwidth:64 capacity:10 items:3 error_ratio:0.0025"

Parameter respons BF.INFO:

  • total_items menunjukkan jumlah total elemen, dan num_blooms menunjukkan jumlah total lapisan filter Bloom.

  • Informasi setiap lapisan filter Bloom:

    • bytes: jumlah byte yang digunakan.

    • bits: jumlah bit yang digunakan, yang dihitung sebagai jumlah byte dikalikan dengan 8.

    • hashes: jumlah fungsi hash.

    • hashwidth: lebar fungsi hash.

    • capacity: kapasitas.

    • items: jumlah elemen.

    • error_ratio: tingkat positif palsu.