全部产品
Search
文档中心

Tair (Redis® OSS-Compatible):Roaring

更新时间:Nov 10, 2025

TairRoaring adalah struktur data berbasis Tair untuk bitmap Roaring. Topik ini menjelaskan TairRoaring dan perintah yang didukungnya.

Pengenalan TairRoaring

Bitmap (juga dikenal sebagai bitset) adalah struktur data umum yang menggunakan penyimpanan kecil untuk mengoptimalkan kueri pada sejumlah besar data. Bitmap lebih hemat ruang dibandingkan implementasi berbasis hash, tetapi tidak cocok untuk menyimpan data yang jarang. Bitmap terkompresi dikembangkan sebagai solusi atas masalah ini. Roaring bitmap adalah jenis bitmap yang diakui industri karena efisiensi dan keseimbangan yang lebih baik dibandingkan bitmap terkompresi lainnya.

TairRoaring mengoptimalkan Roaring bitmap melalui cara-cara berikut:

  • TairRoaring mencapai keseimbangan antara performa dan kompleksitas ruang di berbagai skenario dengan menggunakan indeks dua tingkat dan kontainer dinamis.

  • TairRoaring memanfaatkan teknik optimasi seperti single instruction, multiple data (SIMD), vektorisasi, dan algoritma popcount untuk meningkatkan efisiensi komputasi serta memberikan kompleksitas waktu dan ruang yang optimal.

  • TairRoaring memanfaatkan performa komputasi yang kuat dan stabilitas tinggi yang disediakan oleh Tair untuk mendukung skenario bisnis.

Skenario tipikal

TairRoaring cocok digunakan di industri seperti siaran langsung, musik, dan e-commerce. Anda dapat menggunakan TairRoaring untuk menambahkan tag multidimensi kepada pengguna dalam skenario seperti rekomendasi personalisasi dan pemasaran presisi.

Catatan rilis

Penting

Perubahan dalam TairRoaring V2:

  • TR.RANGEINTARRAY: TR.RANGEINTARRAY di TairRoaring V1 diubah menjadi TR.RANGE di TairRoaring V2.

  • TR.SETRANGE: Keluaran perintah di V1 adalah OK, sedangkan keluaran di V2 adalah jumlah bit yang telah diatur menjadi 1. Aspek lain dari perintah tetap tidak berubah.

  1. Pada 13 September 2021, TairRoaring V1 dirilis untuk instans yang menjalankan versi minor 1.7.20 atau lebih baru.

  2. Pada 11 Maret 2022, TairRoaring V2 dirilis untuk instans yang menjalankan versi minor 1.7.27 atau lebih baru.

    TairRoaring V2 mengoptimalkan beberapa implementasi perintah dan meningkatkan performa perintah. TairRoaring V2 mencakup sembilan perintah baru termasuk TR.SETBITS dan TR.CLEARBITS, memperbarui tiga perintah dengan dua di antaranya masih kompatibel dengan TairRoaring V1, dan mengubah nama satu perintah.

  3. Pada 20 April 2022, TairRoaring V2.2 dirilis untuk instans yang menjalankan versi minor 1.8.1 atau lebih baru.

    Versi ini menambahkan perintah TR.JACCARD, TR.CONTAINS, dan TR.RANK serta memperbaiki kesalahan yang dikembalikan untuk beberapa perintah ketika sebuah kunci tidak ada (kesalahan ERR key not found dihapus).

Praktik terbaik

Segmentasi audiens dengan menggunakan TairRoaring

Persyaratan

Instans ini adalah instans Tair optimasi memori. Jika instans optimasi memori Anda kompatibel dengan Redis 5.0, versi minor harus 1.7.7 atau yang lebih baru.

Catatan

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

Catatan penggunaan

Operasi ini berlaku untuk data TairRoaring dalam Tair instans.

Daftar perintah

Tipe

Perintah

Sintaksis

Deskripsi

Perubahan versi

Operasi penulisan

TR.SETBIT

TR.SETBIT key offset value

Menetapkan bit yang ditentukan dalam kunci TairRoaring menjadi nilai 1 atau 0 dan mengembalikan nilai bit asli. Offset dimulai dari 0.

- (Tidak tersedia)

TR.SETBITS

TR.SETBITS key offset [offset1 offset2 ... offsetN]

Menetapkan nilai bit yang ditentukan dalam kunci TairRoaring menjadi 1. Anda dapat menentukan beberapa nilai bit.

Ditambahkan di V2

TR.CLEARBITS

TR.CLEARBITS key offset [offset1 offset2 ... offsetN]

Menetapkan nilai bit yang ditentukan dalam kunci TairRoaring menjadi 0. Jika bit yang ditentukan sudah memiliki nilai 0, operasi tidak dilakukan. Anda dapat menentukan beberapa nilai bit.

Ditambahkan di V2

TR.SETRANGE

TR.SETRANGE key start end

Menetapkan bit dalam rentang yang ditentukan dalam kunci TairRoaring menjadi nilai 1. Rentang tersebut merupakan interval tertutup.

Diperbarui di V2. Setelah pembaruan perintah di V2, keluaran perintah berubah menjadi jumlah bit yang disetel ke 1.

TR.APPENDBITARRAY

TR.APPENDBITARRAY key offset bitarray

Menyisipkan larik bit ke posisi setelah bit yang ditentukan dalam Roaring Bitmap dan menimpa data asli. Larik bit terdiri dari 0 dan 1.

Ditambahkan di V2

TR.FLIPRANGE

TR.FLIPRANGE key start end

Mengubah nilai bit dalam rentang yang ditentukan dalam kunci TairRoaring dari 0 menjadi 1 atau dari 1 menjadi 0. Rentang tersebut merupakan interval tertutup. Jika kunci tidak ada, kunci dibuat sebagai dataset kosong dan operasi dilakukan pada kunci tersebut.

Ditambahkan di V2

TR.APPENDINTARRAY

TR.APPENDINTARRAY key value [value1 value2 ... valueN]

Menetapkan nilai bit yang ditentukan dalam kunci TairRoaring menjadi 1. Anda dapat menentukan beberapa nilai bit.

Catatan

Dalam TairRoaring V2, kami merekomendasikan Anda menggunakan TR.SETBITS alih-alih perintah ini.

-

TR.SETINTARRAY

TR.SETINTARRAY key value [value1 value2 ... valueN]

Membuat kunci TairRoaring berdasarkan larik integer yang ditentukan. Jika kunci sudah ada, perintah ini menimpa data dalam kunci.

Catatan

Dalam TairRoaring V2, kami merekomendasikan Anda menggunakan TR.SETBITS alih-alih perintah ini.

-

TR.SETBITARRAY

TR.SETBITARRAY key value

Membuat kunci TairRoaring berdasarkan string larik bit yang ditentukan. String larik bit terdiri dari 0 dan 1. Jika kunci sudah ada, perintah ini menimpa data dalam kunci.

Catatan

Dalam TairRoaring V2, kami merekomendasikan Anda menggunakan TR.APPENDBITARRAY alih-alih perintah ini.

-

TR.BITOP

TR.BITOP destkey operation key [key1 key2 ... keyN]

Menjalankan operasi himpunan pada Roaring Bitmap dan menyimpan hasilnya di destkey. Perintah ini mendukung operasi AND, OR, XOR, NOT, dan DIFF.

Catatan

Perintah ini tidak tersedia untuk kunci yang berada di slot berbeda dalam instans kluster.

-

TR.BITOPCARD

TR.BITOPCARD operation key [key1 key2 ... keyN]

Menjalankan operasi bitwise pada beberapa kunci TairRoaring. Operasi bitwise AND, OR, XOR, NOT, dan DIFF didukung.

Catatan

Perintah ini tidak tersedia untuk kunci yang berada di slot berbeda dalam instans kluster.

Ditambahkan di V2

TR.OPTIMIZE

TR.OPTIMIZE key

Mengoptimalkan penyimpanan kunci TairRoaring. Jika kunci relatif besar dan digunakan terutama untuk operasi baca setelah kunci dibuat, Anda dapat menjalankan perintah ini.

-

Operasi pembacaan

TR.GETBIT

TR.GETBIT key offset

Mengambil nilai bit yang ditentukan dari kunci TairRoaring.

-

TR.GETBITS

TR.GETBITS key offset [offset1 offset2 ... offsetN]

Mengambil nilai bit yang ditentukan dari kunci TairRoaring. Anda dapat menentukan beberapa bit untuk pengambilan nilai.

Ditambahkan di V2

TR.BITCOUNT

TR.BITCOUNT key [start end]

Menghitung jumlah bit yang memiliki nilai 1 dalam rentang yang ditentukan dalam kunci TairRoaring. Rentang tersebut merupakan interval tertutup.

Diperbarui di V2 dan kompatibel ke depan.

TR.BITPOS

TR.BITPOS <key> <value> [count]

Mengambil offset bit yang memiliki nomor ordinal count. Bit dapat memiliki nilai 1 atau 0. Parameter count bersifat opsional dan memiliki nilai default 1. Nilai 1 menunjukkan bit pertama yang diambil dengan menggunakan pendekatan penghitungan kiri-kanan.

Diperbarui di V2 dan kompatibel ke depan.

TR.SCAN

TR.SCAN key start_offset [COUNT count]

Memindai semua bit yang terletak setelah bit yang ditentukan dalam kunci TairRoaring dan mengembalikan offset yang sesuai dengan jumlah bit yang dipindai yang memiliki nilai 1. Kursor yang dikembalikan adalah offset yang sesuai dengan kunci.

Catatan

Perintah ini mungkin atau mungkin tidak memindai dan mengembalikan elemen yang ditambahkan atau dihapus.

Ditambahkan di V2

TR.RANGE

TR.RANGE key start end

Mengembalikan offset bit yang memiliki nilai 1 dalam rentang yang ditentukan dalam kunci TairRoaring. Rentang tersebut merupakan interval tertutup.

Diganti namanya menjadi TR.RANGE di V2 dari TR.RANGEINTARRAY di V1.

TR.RANGEBITARRAY

TR.RANGEBITARRAY key start end

Mengambil string yang terdiri dari nilai bit 0 dan 1 dalam rentang yang ditentukan dalam kunci TairRoaring. Rentang tersebut merupakan interval tertutup.

Ditambahkan di V2

TR.MIN

TR.MIN key

Mengambil offset bit pertama yang memiliki nilai 1 dalam kunci TairRoaring. Jika tidak ada bit yang memiliki nilai 1, nilai -1 dikembalikan.

-

TR.MAX

TR.MAX key

Mengambil offset bit terakhir yang memiliki nilai 1 dalam Roaring Bitmap. Jika tidak ada bit yang memiliki nilai 1, -1 dikembalikan.

-

TR.STAT

TR.STAT key [JSON]

Mengembalikan informasi statistik kunci TairRoaring yang ditentukan. Informasi tersebut mencakup jumlah kontainer dan penggunaan memori.

Ditambahkan di V2

TR.JACCARD

TR.JACCARD key1 key2

Mengambil koefisien kesamaan Jaccard dua kunci TairRoaring. Semakin tinggi koefisien, semakin tinggi kesamaannya.

Catatan

Perintah ini tidak tersedia untuk kunci yang berada di slot berbeda dalam instans kluster.

Ditambahkan di V2.2

TR.CONTAINS

TR.CONTAINS key1 key2

Memeriksa apakah key2 mengandung key1. Jika ya, key1 adalah subset dari key2 dan nilai 1 dikembalikan. Sebaliknya, key1 bukan subset dari key2 dan nilai 0 dikembalikan.

Catatan

Perintah ini tidak tersedia untuk kunci yang berada di slot berbeda dalam instans kluster.

Ditambahkan di V2.2

TR.RANK

TR.RANK key offset

Mengambil jumlah bit yang memiliki nilai 1 dalam rentang dari bit pertama hingga bit yang ditentukan. Rentang tersebut merupakan interval tertutup.

Ditambahkan di V2.2

Operasi tujuan umum

DEL

DEL key [key ...]

Menghapus satu atau lebih kunci TairRoaring.

-

Catatan
  • Berikut ini adalah bagian yang menjelaskan sintaks perintah:

    • Kata kunci huruf besar: menunjukkan kata kunci perintah.

    • Teks miring: menunjukkan variabel.

    • [opsi]: menunjukkan bahwa parameter yang diapit bersifat opsional. Parameter yang tidak diapit oleh tanda kurung siku harus ditentukan.

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

    • ...: menunjukkan bahwa parameter sebelum simbol ini dapat ditentukan secara berulang.

  • Dalam topik ini, huruf yang digunakan dalam ekspresi kompleksitas waktu menunjukkan makna spesifik topik:

    • C menunjukkan argc atau rentang parameter.

    • M menunjukkan jumlah bit yang disetel ke 1 dalam struktur data, seperti jumlah node dalam daftar atau jumlah bidang dalam hash.

TR.SETBIT

Kategori

Deskripsi

Sintaksis

TR.SETBIT key offset value

Kompleksitas waktu

O(1)

Deskripsi perintah

Menetapkan bit yang ditentukan dalam kunci TairRoaring menjadi nilai 1 atau 0 dan mengembalikan nilai bit asli. Offset dimulai dari 0.

Parameter

  • Key: Nama kunci (struktur data TairRoaring).

  • offset: Bilangan bulat yang mewakili offset dari bit yang akan diatur, dengan rentang nilai 0 ~ 2^32.

  • value: Nilai bit yang akan diatur, yang bisa berupa 1 atau 0.

Keluaran

  • Jika operasi berhasil, nilai bit 0 atau 1 dikembalikan.

  • Jika tidak, pesan kesalahan dikembalikan.

Contoh

Perintah contoh:

TR.SETBIT foo 0 1

Keluaran contoh:

(integer) 0

TR.SETBITS

Item

Description

Sintaksis

TR.SETBITS key offset [offset1 offset2 ... offsetN]

Kompleksitas waktu

O(C)

Deskripsi perintah

Menetapkan nilai bit yang ditentukan dalam kunci TairRoaring menjadi 1. Anda dapat menentukan beberapa nilai bit.

Opsi

  • Key: Nama kunci (struktur data TairRoaring).

  • Offset: Bilangan bulat yang mewakili offset dari bit yang akan diatur, dengan rentang nilai 0 ~ 2^32.

Keluaran

  • Jika operasi berhasil, jumlah bit dalam kunci yang diatur ke 1 dikembalikan.

  • Jika tidak, pesan kesalahan akan dikembalikan.

Contoh

Perintah contoh:

TR.SETBITS foo 9 10

Keluaran contoh:

(integer) 5

TR.CLEARBITS

Item

Description

Sintaks

TR.CLEARBITS key offset [offset1 offset2 ... offsetN]

Kompleksitas waktu

O(C)

Deskripsi perintah

Mengatur nilai bit yang ditentukan dalam kunci TairRoaring menjadi 0. Jika bit yang ditentukan sudah memiliki nilai 0, operasi tidak dilakukan. Anda dapat menentukan beberapa nilai bit.

Parameter

  • Key: Nama kunci (struktur data TairRoaring).

  • Offset: Bilangan bulat yang mewakili offset dari bit yang akan diatur, dengan rentang nilai 0 ~ 2^32.

Keluaran

  • Jika operasi berhasil, jumlah bit dalam kunci yang telah diatur ke 0 dikembalikan.

  • Jika kunci tidak ada, nilai 0 dikembalikan.

  • Jika tidak, pesan kesalahan dikembalikan.

Contoh

Perintah contoh:

TR.CLEARBITS foo 9 10

Keluaran contoh:

(integer) 2

TR.SETRANGE

Item

Description

Sintaksis

TR.SETRANGE key start end

Kompleksitas waktu

O(C)

Deskripsi perintah

Menetapkan bit dalam rentang yang ditentukan di kunci TairRoaring menjadi nilai 1. Rentang tersebut merupakan interval tertutup.

Sebagai contoh, jika Anda menjalankan perintah TR.SETRANGE foo 1 3, sistem akan membuat kunci foo dengan nilai 0111.

Opsi

  • Key: Nama kunci (struktur data TairRoaring).

  • start: nilai awal dari interval. Nilai valid: 0 hingga 2^32.

  • end: nilai akhir dari interval. Nilai valid: 0 hingga 2^32.

Keluaran

  • Jika operasi berhasil, jumlah bit dalam kunci yang disetel ke 1 akan dikembalikan.

  • Jika tidak, pesan kesalahan akan dikembalikan.

Contoh

Perintah sampel:

TR.SETRANGE foo 1 3

Keluaran sampel:

(integer) 3

TR.APPENDBITARRAY

Item

Description

Sintaksis

TR.APPENDBITARRAY key offset bitarray

Kompleksitas waktu

O(C)

Deskripsi perintah

Menyisipkan larik bit ke dalam posisi setelah bit yang ditentukan dalam Roaring Bitmap dan menimpa data asli. Larik bit terdiri dari 0 dan 1.

Parameter

  • Key: Nama kunci (struktur data TairRoaring).

  • offset: Offset awal yang ditentukan (tidak termasuk nilai ini), dengan rentang nilai -1 ~ 2^32.

  • bitarray: Larik bit yang akan ditambahkan, yang akan menimpa data yang ada, terdiri dari 0 atau 1 berurutan, dengan rentang nilai 0 ~ 2^32.

    Catatan

    Total panjang offset yang ditentukan dan larik bit yang ditambahkan tidak boleh melebihi 2^32, jika tidak operasi akan gagal.

Keluaran

  • Jika operasi berhasil, jumlah bit dalam kunci yang disetel ke 1 dikembalikan.

  • Jika tidak, pesan kesalahan dikembalikan.

Contoh

Jalankan perintah TR.SETBITS foo 0 terlebih dahulu.

Perintah contoh:

TR.APPENDBITARRAY foo 1 1101

Keluaran contoh:

(integer) 4

Dalam hal ini, kunci TairRoaring foo adalah "101101".

TR.FLIPRANGE

Item

Description

Sintaksis

TR.FLIPRANGE key start end

Kompleksitas waktu

O(C)

Deskripsi perintah

Mengubah nilai bit dalam rentang tertentu di kunci TairRoaring dari 0 menjadi 1 atau dari 1 menjadi 0. Rentang tersebut merupakan interval tertutup. Jika kunci tidak ada, kunci akan dibuat sebagai set data kosong dan operasi dilakukan pada kunci tersebut.

Parameter

  • Key: Nama kunci (struktur data TairRoaring).

  • start: Offset awal (inklusif), dengan nilai berkisar dari 0 hingga 2^32.

  • end: Offset akhir (inklusif), dengan nilai berkisar dari 0 hingga 2^32.

Output

  • Jika operasi berhasil, jumlah bit dalam kunci yang telah diatur ke 1 dikembalikan.

  • Jika kunci tidak ada, kunci dibuat sebagai set data kosong dan operasi dilakukan pada kunci tersebut. Jika operasi berhasil, jumlah bit dalam kunci yang telah diatur ke 1 dikembalikan.

  • Jika tidak, pesan kesalahan dikembalikan.

Contoh

Jalankan perintah TR.SETBITS foo 0 2 3 5 terlebih dahulu.

Perintah contoh:

TR.FLIPRANGE foo 0 5

Output contoh:

(integer) 2

Dalam hal ini, kunci TairRoaring foo adalah "01001".

TR.APPENDINTARRAY

Item

Description

Sintaksis

TR.APPENDINTARRAY key value [value1 value2 ... valueN]

Kompleksitas waktu

O(C)

Deskripsi perintah

Menetapkan nilai bit yang ditentukan dalam kunci TairRoaring menjadi 1. Anda dapat menentukan beberapa nilai bit.

Catatan

Dalam TairRoaring V2, kami merekomendasikan untuk menggunakan TR.SETBITS sebagai pengganti perintah ini.

Parameter

  • Key: Nama kunci (struktur data TairRoaring).

  • value: Offset integer dari bit yang ingin Anda proses. Nilai valid: 0 hingga 4294967296.

Output

  • Jika operasi berhasil, OK dikembalikan.

  • Jika tidak, pesan kesalahan akan dikembalikan.

Contoh

Perintah contoh:

TR.APPENDINTARRAY foo 9 10

Output contoh:

OK

TR.SETINTARRAY

Item

Description

Sintaks

TR.SETINTARRAY key value [value1 value2 ... valueN]

Kompleksitas waktu

O(C)

Deskripsi perintah

Membuat kunci TairRoaring berdasarkan array integer yang ditentukan. Jika kunci sudah ada, perintah ini akan menimpa data dalam kunci tersebut.

Catatan

Dalam TairRoaring V2, kami merekomendasikan Anda menggunakan TR.SETBITS sebagai pengganti perintah ini.

Parameter

  • Key: Nama kunci (struktur data TairRoaring).

  • value: integer yang menentukan posisi bit yang akan disetel.

Keluaran

  • Jika operasi berhasil, OK dikembalikan.

  • Jika tidak, pesan kesalahan dikembalikan.

Contoh

Perintah contoh:

TR.SETINTARRAY foo 2 4 5 6

Keluaran contoh:

OK

TR.SETBITARRAY

Item

Description

Sintaksis

TR.SETBITARRAY key value

Kompleksitas waktu

O(C)

Deskripsi perintah

Membuat kunci TairRoaring berdasarkan string larik bit yang ditentukan. String larik bit terdiri dari 0 dan 1. Jika kunci sudah ada, perintah ini akan menimpa data dalam kunci tersebut.

Catatan

Dalam TairRoaring V2, kami merekomendasikan Anda untuk menggunakan TR.APPENDBITARRAY sebagai pengganti perintah ini.

Parameter

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

  • value: Sebuah string yang terdiri dari 0 dan 1 yang mewakili larik bit.

Keluaran

  • Jika operasi berhasil: OK dikembalikan.

  • Jika tidak, pesan kesalahan akan dikembalikan.

Contoh

Perintah contoh:

tr.setbitarray foo 10101001

Keluaran contoh:

OK 

TR.BITOP

Item

Description

Sintaksis

TR.BITOP destkey operation key [key1 key2 ... keyN]

Kompleksitas waktu

O(C * M)

Deskripsi perintah

Menjalankan operasi himpunan pada Roaring Bitmaps dan menyimpan hasilnya di destkey. Perintah ini mendukung operasi AND, OR, XOR, NOT, dan DIFF.

Catatan

Perintah ini tidak tersedia untuk kunci yang berada di slot berbeda dalam instans kluster.

Opsi

  • destkey: kunci tujuan yang menyimpan hasil (struktur data TairRoaring).

  • operation: jenis operasi himpunan. Nilai valid: AND (logika AND), OR (logika OR), XOR (eksklusif OR), NOT (logika NOT), dan DIFF (perbedaan).

    Catatan
    • Operasi NOT hanya dapat dilakukan pada satu kunci saja.

    • Operasi DIFF hanya dapat dilakukan pada dua kunci. Perhatikan urutan kuncinya. Contohnya, perintah TR.BITOP result DIFF key1 key2 mengurangi key2 dari key1 (key1 - key2).

  • key: Kunci dari struktur data TairRoaring. Anda dapat menentukan beberapa kunci.

Keluaran

  • Jika operasi berhasil, jumlah bit dalam hasil yang disetel ke 1 akan dikembalikan sebagai bilangan bulat.

  • Jika tidak, pesan kesalahan akan dikembalikan.

Contoh

Perintah contoh:

TR.BITOP result OR foo bar

Keluaran contoh:

(integer) 6

TR.BITOPCARD

Item

Description

Sintaksis

TR.BITOPCARD operation key [key1 key2 ... keyN]

Kompleksitas waktu

O(C * M)

Deskripsi perintah

Menjalankan operasi bitwise pada beberapa kunci TairRoaring. Operasi bitwise yang didukung adalah AND, OR, XOR, NOT, dan DIFF.

Catatan

Perintah ini tidak tersedia untuk kunci yang berada di slot berbeda dalam instans kluster.

opsi

  • operation: jenis operasi set. Nilai valid: AND, OR, XOR, NOT, dan DIFF.

    Catatan
    • Operasi NOT hanya dapat dilakukan pada satu kunci saja.

    • Operasi DIFF hanya dapat menghitung perbedaan antara dua kunci. Perhatikan urutan operasi saat menghitung perbedaan. Sebagai contoh, perintah TR.BITOP result DIFF key1 key2 menghitung perbedaan key1 relatif terhadap key2 (key1 - key2).

  • key: nama kunci (struktur data TairRoaring). Anda dapat menentukan beberapa kunci.

Keluaran

  • Jika operasi berhasil, jumlah bit dalam hasil yang disetel ke 1 akan dikembalikan sebagai bilangan bulat.

  • Jika tidak, pesan kesalahan akan dikembalikan.

Contoh

Perintah sampel:

TR.BITOPCARD NOT foo

Keluaran sampel:

(integer) 2

TR.OPTIMIZE

Item

Deskripsi

Sintaks

TR.OPTIMIZE key

Kompleksitas waktu

O(M)

Deskripsi perintah

Mengoptimalkan penyimpanan kunci TairRoaring. Jika kunci tersebut relatif besar dan terutama digunakan untuk operasi baca setelah pembuatan kunci, Anda dapat menjalankan perintah ini.

Opsi

  • Key: Nama kunci (struktur data TairRoaring).

Keluaran

  • Jika operasi berhasil, OK dikembalikan.

  • Jika kunci tidak ada, nil dikembalikan.

  • Jika tidak, pesan kesalahan dikembalikan.

Contoh

Perintah contoh:

TR.OPTIMIZE foo

Keluaran contoh:

OK

TR.GETBIT

Item

Description

Sintaksis

TR.GETBIT key offset

Kompleksitas waktu

O(1)

Deskripsi perintah

Mengambil nilai dari bit yang ditentukan dari sebuah kunci TairRoaring.

Opsi

  • Key: Nama kunci (struktur data TairRoaring).

  • offset: Offset yang ingin Anda kueri.

Output

  • Jika operasi berhasil, nilai 0 atau 1 akan dikembalikan.

  • Jika tidak, pesan kesalahan akan dikembalikan.

Contoh

Perintah contoh:

TR.GETBIT foo 0

Output contoh:

(integer) 1

TR.GETBITS

Item

Description

Sintaksis

TR.GETBITS key offset [offset1 offset2 ... offsetN]

Kompleksitas waktu

O(C)

Deskripsi perintah

Mengambil nilai dari bit yang ditentukan dari sebuah TairRoaring key. Anda dapat menentukan beberapa bit untuk pengambilan nilai.

Parameter

  • Key: Nama key (struktur data TairRoaring).

  • offset: Offset yang ingin Anda kueri.

Keluaran

  • Jika operasi berhasil, nilai bit akan dikembalikan.

  • Jika key tidak ada, array kosong akan dikembalikan.

  • Jika tidak, pesan kesalahan akan dikembalikan.

Contoh

Perintah contoh:

TR.GETBITS foo 3 4 6 8

Keluaran contoh:

1) (integer) 1
2) (integer) 1
3) (integer) 1
4) (integer) 0

TR.BITCOUNT

Item

Description

Sintaksis

TR.BITCOUNT key [start end]

Kompleksitas waktu

O(M)

Deskripsi perintah

Menghitung jumlah bit yang memiliki nilai 1 dalam rentang tertentu di dalam kunci TairRoaring. Rentang tersebut merupakan interval tertutup.

Parameter

  • Key: Nama kunci (struktur data TairRoaring).

  • start: Offset awal (inklusif), dengan nilai berkisar dari 0 hingga 2^32.

  • end: Offset akhir (inklusif), dengan nilai berkisar dari 0 hingga 2^32.

Output

  • Jika operasi berhasil, jumlah bilangan bulat bit dalam kunci yang disetel ke 1 akan dikembalikan.

  • Jika kunci tidak ada, nilai 0 akan dikembalikan.

  • Selain itu, pesan kesalahan akan dikembalikan.

Contoh

Perintah contoh:

TR.BITCOUNT foo 4 9

Output contoh:

(integer) 3

TR.BITPOS

Item

Description

Sintaksis

TR.BITPOS <key> <value> [count]

Kompleksitas waktu

O(C)

Deskripsi perintah

Mengambil Offset dari bit yang memiliki nomor urut count. Sebuah bit dapat memiliki nilai 1 atau 0. Parameter count bersifat opsional dan memiliki nilai default 1. Nilai 1 menunjukkan bit pertama yang diambil menggunakan pendekatan penghitungan kiri-kanan.

Parameter

  • Key: Nama kunci (struktur data TairRoaring).

  • value: nilai dari bit yang Offset-nya ingin Anda ambil. Nilai bit bisa 0 atau 1.

  • count: nomor urut dari bit. Angka negatif menunjukkan bahwa pendekatan penghitungan kanan-kiri digunakan.

Keluaran

  • Jika operasi berhasil, Offset dari bit yang memiliki nilai 1 atau 0 dikembalikan.

  • Jika kunci tidak ada, nilai -1 dikembalikan.

  • Jika tidak, pesan kesalahan dikembalikan.

Contoh

Perintah contoh:

TR.BITPOS foo 1 -1

Keluaran contoh:

(integer) 6

TR.SCAN

Item

Description

Sintaksis

TR.SCAN key start_offset [COUNT count]

Kompleksitas waktu

O(C)

Deskripsi perintah

Memindai semua bit yang terletak setelah bit tertentu dalam kunci TairRoaring dan mengembalikan offset yang sesuai dengan jumlah bit yang dipindai yang memiliki nilai 1. Kursor yang dikembalikan adalah offset yang sesuai dengan kunci.

Catatan

Perintah ini mungkin atau mungkin tidak memindai dan mengembalikan elemen yang ditambahkan atau dihapus.

Parameter

  • Key: Nama kunci (struktur data TairRoaring).

  • start_offset: offset dari bit. Bit yang sesuai dengan offset ini akan dipindai.

  • COUNT: jumlah bit yang ingin Anda kueri. Nilai default: 10.

Keluaran

  • Jika operasi berhasil, array yang berisi dua elemen dikembalikan:

    • Elemen pertama adalah nilai start_offset berikutnya. Jika kunci telah dipindai, nilai 0 dikembalikan.

    • Elemen kedua: offset target dari kueri saat ini.

    Catatan

    Jika kunci tidak ada, array yang terdiri dari 0 dan elemen kosong dikembalikan.

  • Jika tidak, pesan kesalahan dikembalikan.

Contoh

Perintah contoh:

TR.SCAN foo 0 COUNT 2

Keluaran contoh:

1) (integer) 3
2) 1) (integer) 0
   2) (integer) 2

TR.RANGE

Kategori

Deskripsi

Sintaksis

TR.RANGE key start end

Kompleksitas waktu

O(C)

Deskripsi perintah

Mengembalikan offset dari bit yang memiliki nilai 1 dalam rentang tertentu di dalam kunci TairRoaring. Rentang tersebut merupakan interval tertutup.

Parameter

  • Key: Nama kunci (struktur data TairRoaring).

  • start: nilai awal interval (inklusif).

  • end: nilai akhir interval (inklusif).

Keluaran

  • Jika operasi berhasil, offset dari bit yang memiliki nilai 1 dikembalikan.

  • Jika kunci tidak ada, array kosong dikembalikan.

  • Jika tidak, pesan kesalahan dikembalikan.

Contoh

Jalankan perintah TR.SETBITS foo 0 2 3 5 terlebih dahulu.

Perintah contoh:

TR.RANGE foo 0 5

Keluaran contoh:

1) (integer) 0
2) (integer) 2
3) (integer) 3
4) (integer) 5

TR.RANGEBITARRAY

Item

Description

Syntax

TR.RANGEBITARRAY key start end

Kompleksitas waktu

O(C)

Deskripsi perintah

Mengambil string yang terdiri dari nilai bit 0 dan 1 dalam rentang tertentu di dalam kunci TairRoaring. Rentang tersebut merupakan interval tertutup.

Parameter

  • Key: Nama kunci (struktur data TairRoaring).

  • start: nilai awal interval (inklusif).

  • end: nilai akhir interval (inklusif).

Keluaran

  • Jika operasi berhasil, offset dari bit yang bernilai 1 akan dikembalikan.

  • Jika kunci tidak ada, nil akan dikembalikan.

  • Selain itu, pesan kesalahan akan dikembalikan.

Contoh

Jalankan perintah TR.SETBITS foo 0 2 3 5 terlebih dahulu.

Perintah contoh:

TR.RANGEBITARRAY foo 0 5

Keluaran contoh:

"101101"

TR.MIN

Item

Description

Sintaksis

TR.MIN key

Kompleksitas waktu

O(1)

Deskripsi perintah

Mengambil Offset bit pertama yang memiliki nilai 1 dalam kunci TairRoaring. Jika tidak ada bit yang memiliki nilai 1, nilai -1 akan dikembalikan.

Parameter

  • Key: Nama kunci (struktur data TairRoaring).

Keluaran

  • Jika operasi berhasil:

    • Jika bit yang memiliki nilai 1 ada di dalam kunci, integer Offset dari bit pertama yang memiliki nilai 1 akan dikembalikan.

    • Jika tidak ada bit yang memiliki nilai 1 di dalam kunci atau jika kunci tidak ada, nilai -1 akan dikembalikan.

  • Jika tidak, pesan kesalahan akan dikembalikan.

Contoh

Perintah contoh:

TR.MIN foo

Keluaran contoh:

4

TR.MAX

Item

Description

Sintaks

TR.MAX key

Kompleksitas waktu

O(1)

Deskripsi perintah

Mengambil Offset dari bit terakhir yang memiliki nilai 1 dalam Roaring Bitmap. Jika tidak ada bit yang memiliki nilai 1, -1 akan dikembalikan.

Opsi

  • Key: Nama kunci (struktur data TairRoaring).

Keluaran

  • Jika operasi berhasil:

    • Jika bit yang memiliki nilai 1 ada di dalam kunci, integer Offset dari bit terakhir yang memiliki nilai 1 akan dikembalikan.

    • Jika tidak ada bit yang memiliki nilai 1 di dalam kunci atau jika kunci tidak ada, nilai -1 akan dikembalikan.

  • Jika tidak, pesan kesalahan akan dikembalikan.

Contoh

Perintah contoh:

TR.MAX foo

Keluaran contoh:

6

TR.STAT

Item

Description

Sintaksis

TR.STAT key [JSON]

Kompleksitas waktu

O(M)

Deskripsi perintah

Mengembalikan informasi statistik dari kunci TairRoaring yang ditentukan. Informasi tersebut mencakup jumlah kontainer dan penggunaan memori.

Parameter

  • Key: Nama kunci (struktur data TairRoaring).

  • JSON: Jika parameter ini ditentukan, informasi statistik dikembalikan dalam format JSON.

Output

  • Jika operasi berhasil, output berikut akan dikembalikan:

    "{\"cardinality\":3,                    # Total jumlah elemen dalam kunci
    \"number_of_containers\":1,             # Total jumlah kontainer dalam kunci
    \"max_value\":6,                        # Nilai elemen maksimum dalam kunci
    \"min_value\":3,                        # Nilai elemen minimum dalam kunci
    \"sum_value\":13,
    \"array_container\":{                   # Jumlah array kontainer dalam kunci
        \"number_of_containers\":1,
        \"container_cardinality\":3,
        \"container_allocated_bytes\":6},
    \"bitset_container\":{                  # Jumlah bitset kontainer dalam kunci
        \"number_of_containers\":0,
        \"container_cardinality\":0,
        \"container_allocated_bytes\":0},
    \"run_container\":{                     # Jumlah run kontainer dalam kunci
        \"number_of_containers\":0,
        \"container_cardinality\":0,
        \"container_allocated_bytes\":0}}"
    
                                            
  • Jika kunci tidak ada, nil dikembalikan.

  • Jika tidak, pesan kesalahan akan dikembalikan.

Contoh

Perintah contoh:

TR.STAT foo JSON

Output contoh:

"{\"cardinality\":4,\"number_of_containers\":1,\"max_value\":5,\"min_value\":0,\"sum_value\":10,\"array_container\":{\"number_of_containers\":1,\"container_cardinality\":4,\"container_allocated_bytes\":8},\"bitset_container\":{\"number_of_containers\":0,\"container_cardinality\":0,\"container_allocated_bytes\":0},\"run_container\":{\"number_of_containers\":0,\"container_cardinality\":0,\"container_allocated_bytes\":0}}"

TR.JACCARD

Item

Description

Sintaksis

TR.JACCARD key1 key2

Kompleksitas waktu

O(M)

Deskripsi perintah

Mengambil koefisien kemiripan Jaccard dari dua kunci TairRoaring. Semakin tinggi koefisien, semakin tinggi tingkat kemiripannya.

Catatan

Perintah ini tidak tersedia untuk kunci yang berada di slot berbeda dalam instans kluster.

Parameter

  • Key: Nama kunci (struktur data TairRoaring).

Keluaran

  • Jika operasi berhasil, koefisien kemiripan Jaccard bertipe double akan dikembalikan.

  • Jika tidak, pesan kesalahan akan dikembalikan.

Contoh

Perintah contoh:

TR.JACCARD foo1 foo2

Keluaran contoh:

"0,20000000000000001"

TR.CONTAINS

Kategori

Deskripsi

Sintaksis

TR.CONTAINS key1 key2

Kompleksitas waktu

O(M)

Deskripsi perintah

Memeriksa apakah key2 mengandung key1. Jika ya, key1 adalah subset dari key2 dan nilai 1 dikembalikan. Sebaliknya, jika key1 bukan subset dari key2, nilai 0 dikembalikan.

Catatan

Perintah ini tidak tersedia untuk kunci yang berada di slot berbeda dalam instans kluster.

opsi

  • Key: Nama kunci (struktur data TairRoaring).

Keluaran

  • Jika operasi berhasil:

    • Jika key2 mengandung key1, nilai 1 dikembalikan.

    • Jika key2 tidak mengandung key1, nilai 0 dikembalikan.

  • Sebaliknya, pesan kesalahan dikembalikan.

Contoh

Jalankan perintah TR.SETBITS fooM 1 2 3 10 dan TR.SETBITS foom 1 2 terlebih dahulu.

Contoh perintah:

TR.CONTAINS foom fooM

Contoh keluaran:

(integer) 1

TR.RANK

Item

Description

Sintaks

TR.RANK key offset

Kompleksitas waktu

O(M)

Deskripsi perintah

Mengambil jumlah bit yang memiliki nilai 1 dalam rentang dari bit pertama hingga bit yang ditentukan. Rentang tersebut merupakan interval tertutup.

Opsi

  • Key: Nama kunci (struktur data TairRoaring).

  • offset: Offset dari bit yang ditentukan. Nilainya harus berupa bilangan bulat.

Keluaran

  • Jika operasi berhasil, jumlah bit yang memiliki nilai 1 akan dikembalikan.

  • Jika tidak, pesan kesalahan akan dikembalikan.

Contoh

Jalankan perintah TR.SETBITS fooM 1 2 3 10 terlebih dahulu.

Perintah contoh:

TR.RANK fooM 10

Keluaran contoh:

(integer) 4

Pesan kesalahan

Pesan kesalahan

Deskripsi

WRONGTYPE Operation against a key holding the wrong kind of value

Tipe objek salah: Kunci bukan objek TairRoaring.

ERR bad arguments, must be unsigned 32-bit integer

Tipe parameter salah: Nilai parameter tidak dapat diubah menjadi bilangan bulat 32-bit.

ERR invalid arguments, maybe out of range or illegal

Parameter tidak valid:

  • Offset bukan bilangan bulat 32-bit.

  • Offset awal dan akhir tidak valid.

  • Nilai parameter melebihi jumlah elemen maksimum yang diizinkan untuk kunci TairRoaring.

ERR key already exist

Kunci TairRoaring sudah ada, dan datanya tidak dapat ditimpa.

Catatan

Kesalahan ini diperbaiki di TairRoaring V2.2.

ERR key not found

Objek Roaring Bitmap tidak ada. Operasi ini tidak didukung.

Catatan

Kesalahan ini diperbaiki di TairRoaring V2.2.