All Products
Search
Document Center

Tair (Redis® OSS-Compatible):exZset

Last Updated:Feb 26, 2026

TairZset (exZset) mendukung pengurutan berdasarkan hingga 256 skor bertipe double. Struktur ini cocok untuk skenario peringkat di berbagai industri, seperti game, live streaming, musik, dan E-dagang. exZset secara signifikan meningkatkan efisiensi pemrosesan data serta memungkinkan adaptasi klien yang sederhana tanpa memerlukan enkapsulasi encoding atau decoding.

Pengenalan TairZset

Sorted Set Redis native (juga dikenal sebagai Zset) hanya mendukung pengurutan berdasarkan satu skor bertipe double, sehingga menyulitkan implementasi pengurutan multi-dimensi. Misalnya, menggabungkan IEEE 754 dengan konkatenasi string untuk mencapai pengurutan multi-dimensi memiliki keterbatasan, seperti kompleksitas implementasi, penurunan presisi, dan ketidakmampuan menggunakan perintah EXZINCRBY.

Struktur data TairZset yang dikembangkan oleh Alibaba Cloud menyediakan pengurutan multi-dimensi dan menawarkan keunggulan berikut dibandingkan solusi tradisional:

  • Mendukung pengurutan hingga 256 skor bertipe double, dengan prioritas pengurutan dari kiri ke kanan.

    Untuk skor multi-dimensi, skor paling kiri memiliki prioritas tertinggi. Sebagai contoh, pertimbangkan skor tiga dimensi: score1#score2#score3. Saat TairZset membandingkan skor, pertama-tama membandingkan score1. Jika nilai score1 sama, maka membandingkan score2. Jika tidak, hasil perbandingan score1 menentukan urutan keseluruhan. Demikian pula, score3 hanya dibandingkan jika nilai score2 juga sama. Jika semua skor identik, pengurutan dilakukan berdasarkan urutan elemen (urutan ASCII).

    Untuk memahami hal ini lebih intuitif, bayangkan '#' sebagai titik desimal (.). Misalnya, hubungan antara 0#99, 99#90, dan 99#99 adalah 0.99 < 99.90 < 99.99, yang berarti 0#99 < 99#90 < 99#99.

  • Mendukung perintah EXZINCRBY, sehingga menghilangkan kebutuhan untuk mengambil data saat ini, menambahkan nilai secara lokal, lalu menggabungkan dan menulis kembali ke Tair.

  • Mendukung API yang mirip dengan Zset native.

  • Mendukung leaderboard reguler dan leaderboard terdistribusi .

  • Menyediakan klien open source TairJedis. Klien ini tidak memerlukan enkapsulasi encoding atau decoding. Anda juga dapat merujuk kode sumber terbuka tersebut untuk mengimplementasikan enkapsulasi dalam bahasa lain.

Skema Penggunaan Khas

Struktur ini cocok untuk skenario peringkat di berbagai industri seperti game, live streaming, musik, dan E-dagang. Contohnya meliputi:

  • Daftar peringkat live streaming: Dalam pertarungan (PK) live streaming, streamer pertama kali diperingkat berdasarkan popularitas saat ini. Jika popularitas mereka sama, maka diperingkat berdasarkan jumlah like. Jika jumlah like juga sama, maka diperingkat berdasarkan jumlah hadiah, dan seterusnya.

  • Daftar peringkat medali: Peserta diperingkat berdasarkan medali Emas, Perak, dan Perunggu. Pertama, mereka diurutkan berdasarkan jumlah medali Emas. Jika jumlah medali Emas sama, maka diurutkan berdasarkan jumlah medali Perak. Jika jumlah medali Perak juga sama, maka diurutkan berdasarkan jumlah medali Perunggu.

  • Daftar peringkat game: Pemain diperingkat berdasarkan beberapa dimensi, seperti skor, waktu penyelesaian tugas, dan peringkat.

Modul ini bersifat open source. Untuk informasi lebih lanjut, lihat TairZset.

Praktik Terbaik

Prasyarat

Instans harus merupakan instans Tair memory-optimized. Jika instans tersebut memory-optimized (kompatibel dengan Redis 5.0), versi minornya harus 1.7.1 atau lebih baru.

Catatan

Versi minor terbaru menyediakan lebih banyak fitur dan stabilitas yang lebih tinggi. Kami menyarankan Anda memperbarui instans ke versi minor terbaru. Untuk informasi selengkapnya, lihat Perbarui versi minor instans. Jika instans Anda merupakan instans kluster atau instans read/write splitting, kami menyarankan Anda memperbarui node proxy dalam instans ke versi minor terbaru untuk memastikan semua perintah dapat dijalankan sebagaimana mestinya.

Catatan

Operasi berlaku untuk data TairZset dalam instans Tair.

Perintah

Perintah

Sintaks

Deskripsi

EXZADD

EXZADD key [NX|XX] [CH] [INCR] score member [score member ...]

Simpan skor dan informasi anggota yang ditentukan dalam kunci TairZset. Mendukung beberapa skor dan anggota.

Catatan

Untuk mengimplementasikan pengurutan multi-dimensi, pisahkan skor setiap dimensi dengan simbol hash (#), seperti 111#222#121. Semua anggota dalam kunci harus memiliki format skor yang sama.

EXZINCRBY

EXZINCRBY key increment member

Tambahkan skor untuk suatu anggota dalam kunci TairZset. increment adalah nilai yang ditambahkan ke skor.

EXZSCORE

EXZSCORE key member

Kembalikan skor suatu anggota dalam kunci TairZset. Jika kunci atau anggota tidak ada, sistem mengembalikan nil.

EXZRANGE

EXZRANGE key min max [WITHSCORES]

Kembalikan elemen dalam rentang tertentu dalam kunci TairZset.

EXZREVRANGE

EXZREVRANGE key min max [WITHSCORES]

Kembalikan elemen dalam rentang tertentu dalam kunci TairZset. Elemen diurutkan berdasarkan skor dari tinggi ke rendah. Elemen dengan skor yang sama diurutkan dalam urutan leksikografis terbalik.

Catatan

Kecuali urutan pengurutan terbalik, perintah ini mirip dengan EXZRANGE.

EXZRANGEBYSCORE

EXZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

Kembalikan semua elemen dalam kunci TairZset dengan skor lebih besar dari atau sama dengan min dan kurang dari atau sama dengan max. Elemen diurutkan berdasarkan skor dari rendah ke tinggi. Elemen dengan skor yang sama diurutkan dalam urutan leksikografis.

EXZREVRANGEBYSCORE

EXZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]

Kembalikan semua elemen dalam kunci TairZset dengan skor lebih besar dari atau sama dengan min dan kurang dari atau sama dengan max. Berbeda dengan pengurutan TairZset default, perintah ini mengurutkan elemen berdasarkan skor dari tinggi ke rendah. Elemen dengan skor yang sama diurutkan dalam urutan leksikografis terbalik.

Catatan

Kecuali urutan pengurutan terbalik, perintah ini mirip dengan EXZRANGEBYSCORE. Perhatikan bahwa max ditulis sebelum min dalam perintah ini.

EXZRANGEBYLEX

EXZRANGEBYLEX key min max [LIMIT offset count]

Untuk memastikan urutan leksikografis, jika semua elemen dalam kunci memiliki skor yang sama, perintah ini mengembalikan elemen dalam kunci antara min dan max.

EXZREVRANGEBYLEX

EXZREVRANGEBYLEX key max min [LIMIT offset count]

Untuk memastikan urutan leksikografis, jika semua elemen dalam kunci memiliki skor yang sama, perintah ini mengembalikan elemen dalam kunci antara max dan min.

Catatan

Kecuali urutan pengurutan terbalik, perintah ini mirip dengan EXZRANGEBYLEX. Perhatikan bahwa max ditulis sebelum min dalam perintah ini.

EXZREM

EXZREM key member [member ...]

Hapus anggota yang ditentukan dari kunci. Jika anggota yang ditentukan tidak ada, abaikan.

EXZREMRANGEBYSCORE

EXZREMRANGEBYSCORE key min max

Hapus elemen dari kunci TairZset dengan skor lebih besar dari atau sama dengan min dan kurang dari atau sama dengan max.

EXZREMRANGEBYRANK

EXZREMRANGEBYRANK key start stop

Hapus elemen dari kunci TairZset dengan peringkat antara start dan stop.

EXZREMRANGEBYLEX

EXZREMRANGEBYLEX key min max

Untuk memastikan urutan leksikografis, jika semua elemen dalam kunci memiliki skor yang sama, perintah ini menghapus elemen dalam kunci antara max dan min.

Catatan

Jika Anda menggunakan nilai parameter min dan max yang sama untuk perintah ini dan perintah EXZRANGEBYLEX, perintah ini akan menghapus elemen yang sama dengan yang dikembalikan oleh EXZRANGEBYLEX.

EXZCARD

EXZCARD key

Kembalikan kardinalitas (jumlah elemen) dalam kunci TairZset.

EXZRANK

EXZRANK key member

Kembalikan peringkat suatu anggota dalam kunci TairZset, diurutkan berdasarkan skor dari rendah ke tinggi. Peringkat (atau indeks) dimulai dari 0, di mana anggota dengan skor terendah memiliki peringkat 0.

EXZREVRANK

EXZREVRANK key member

Kembalikan peringkat suatu anggota dalam kunci TairZset. Hasil diurutkan berdasarkan skor dari tinggi ke rendah. Peringkat (atau indeks) dimulai dari 0, di mana anggota dengan skor tertinggi memiliki peringkat 0.

Catatan

Kecuali aturan pengurutan terbalik, perintah ini mirip dengan EXZRANK.

EXZCOUNT

EXZCOUNT key min max

Kembalikan jumlah elemen dalam kunci TairZset dengan skor antara min dan max.

EXZLEXCOUNT

EXZLEXCOUNT key min max

Untuk memastikan urutan leksikografis, jika semua elemen dalam kunci memiliki skor yang sama, perintah ini mengembalikan jumlah elemen dalam kunci dengan nilai antara min dan max.

EXZRANKBYSCORE

EXZRANKBYSCORE key score

Hitung peringkat skor tertentu dalam kunci TairZset, diurutkan berdasarkan skor dari rendah ke tinggi. Peringkat (atau indeks) dimulai dari 0, di mana anggota dengan skor terendah memiliki peringkat 0.

Catatan

Jika skor yang ditentukan tidak ada, kembalikan perkiraan peringkatnya dalam kunci TairZset. Jika skor yang ditentukan sudah ada, Tair menempatkannya sebelum skor yang sudah ada secara default.

EXZREVRANKBYSCORE

EXZREVRANKBYSCORE key score

Hitung peringkat skor tertentu dalam kunci TairZset, diurutkan berdasarkan skor dari tinggi ke rendah. Peringkat (atau indeks) dimulai dari 0, di mana anggota dengan skor tertinggi memiliki peringkat 0.

Catatan

Jika skor yang ditentukan tidak ada, kembalikan perkiraan peringkatnya dalam kunci TairZset. Jika skor yang ditentukan sudah ada, Tair menempatkannya setelah skor yang sudah ada secara default.

DEL

DEL key [key ...]

Gunakan perintah DEL Redis native untuk menghapus satu atau beberapa entri data TairZset.

Catatan

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

  • Kata kunci huruf kapital: menunjukkan kata kunci perintah.

  • Teks miring: menunjukkan variabel.

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

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

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

EXZADD

Kategori

Deskripsi

Sintaks

EXZADD key [NX|XX] [CH] [INCR] score member [score member ...]

Kompleksitas waktu

O(N)

Deskripsi perintah

Simpan skor dan informasi anggota yang ditentukan dalam kunci TairZset. Mendukung beberapa skor dan anggota. Sistem menerapkan strategi berbeda berdasarkan apakah kunci dan anggota sudah ada:

  • Jika kunci atau anggota yang ditentukan tidak ada, sistem membuatnya dan memasukkan skor.

  • Jika kunci atau anggota yang ditentukan sudah ada, sistem memperbarui (menimpa) skor.

  • Setiap skor adalah representasi string dari bilangan titik mengambang presisi ganda. +inf dan -inf adalah nilai yang valid.

Catatan

Untuk mengimplementasikan pengurutan multi-dimensi, pisahkan skor setiap dimensi dengan simbol hash (#), seperti 111#222#121. Semua anggota dalam kunci harus memiliki format skor yang sama.

Opsi

  • NX: Tambahkan hanya elemen baru. Jangan perbarui elemen yang sudah ada.

  • XX: Perbarui hanya elemen yang sudah ada. Jangan tambahkan elemen baru.

  • CH: Biasanya, perintah ini mengembalikan jumlah elemen baru yang ditambahkan. Gunakan parameter ini untuk mengubah nilai kembali menjadi jumlah total elemen yang berubah.

    Catatan

    Elemen yang berubah mencakup elemen baru dan elemen yang sudah ada dengan skor yang diperbarui. Oleh karena itu, jika skor elemen yang sudah ada dalam baris perintah tidak berubah, elemen tersebut tidak dihitung sebagai elemen yang berubah.

  • INCR: Saat Anda menentukan opsi ini, EXZADD berperilaku seperti EXZINCRBY. Mode ini hanya mendukung penentuan satu skor dan satu elemen.

Nilai kembali

Mengembalikan bilangan bulat:

  • Jika tidak ada opsi yang ditentukan, nilai kembali adalah jumlah elemen yang ditambahkan ke kunci (tidak termasuk elemen yang hanya diperbarui skornya).

  • Jika opsi CH ditentukan, nilai kembali adalah jumlah elemen yang berubah (baru atau diperbarui).

  • Jika opsi INCR ditentukan, nilai kembali adalah skor baru anggota (sebagai string). Jika skor multi-dimensi digunakan, format skor anggota adalah "score1#score2#score3#...", misalnya, 2#0#6.

    Catatan

    Jika operasi dihentikan (perintah mencakup opsi XX atau NX), perintah mengembalikan nil.

Contoh

Contoh perintah:

EXZADD testkey NX 1#0#3 a 1#0#2 b

Contoh nilai kembali:

(integer) 2

EXZINCRBY

Kategori

Deskripsi

Sintaks

EXZINCRBY key increment member

Kompleksitas waktu

O(log(N))

Deskripsi perintah

Tambahkan skor untuk suatu anggota dalam kunci TairZset. increment adalah nilai yang ditambahkan ke skor. Sistem menerapkan strategi berbeda berdasarkan apakah kunci dan anggota sudah ada:

  • Jika kunci atau anggota yang ditentukan tidak ada, sistem membuatnya dan memasukkan skor.

  • Jika kunci atau anggota yang ditentukan sudah ada, sistem memperbarui (menambahkan) skor.

  • Setiap skor adalah representasi string dari bilangan titik mengambang presisi ganda. +inf dan -inf adalah nilai yang valid.

Catatan
  • Untuk mengimplementasikan pengurutan multi-dimensi, pisahkan skor setiap dimensi dengan simbol hash (#), seperti 111#222#121. Semua anggota dalam kunci harus memiliki format skor yang sama.

  • Skor harus berupa representasi string dari nilai numerik, yang dapat berupa bilangan titik mengambang presisi ganda. Untuk mengurangi skor anggota, tentukan angka negatif.

Opsi

Tidak ada

Nilai kembali

Mengembalikan skor baru anggota (sebagai string). Jika skor multi-dimensi digunakan, format skor anggota adalah "score1#score2#score3#...", misalnya, 2#0#6.

Contoh

Contoh perintah:

EXZINCRBY testkey 2#2#1 a

Contoh nilai kembali:

"3#2#4"

EXZSCORE

Kategori

Deskripsi

Sintaks

EXZSCORE key member

Kompleksitas waktu

O(1)

Deskripsi perintah

Kembalikan skor suatu anggota dalam kunci TairZset. Jika kunci atau anggota tidak ada, sistem mengembalikan nil.

Opsi

Tidak ada

Nilai kembali

Mengembalikan skor anggota (sebagai string). Jika skor multi-dimensi digunakan, format skor anggota adalah "score1#score2#score3#...", misalnya, 2#0#6.

Contoh

Contoh perintah:

EXZSCORE testkey a

Contoh nilai kembali:

"3#2#4"

EXZRANGE

Kategori

Deskripsi

Sintaks

EXZRANGE key min max [WITHSCORES]

Kompleksitas waktu

O(log(N)+M), dengan N adalah jumlah elemen dalam TairZset, dan M adalah jumlah elemen yang dikembalikan.

Deskripsi perintah

Kembalikan elemen dalam rentang tertentu dalam kunci TairZset.

Opsi

  • min, max: Ini merepresentasikan nilai indeks berbasis 0. Nilai indeks elemen pertama adalah 0, elemen kedua adalah 1, dan seterusnya. Gunakan dua parameter ini untuk menentukan interval tertutup.

    Catatan
    • Jika nilai indeks negatif, ini merepresentasikan offset dari akhir elemen yang dikembalikan. Misalnya, -1 merepresentasikan elemen terakhir dalam kunci, -2 merepresentasikan elemen kedua dari terakhir, dan seterusnya.

    • Untuk mengambil semua informasi elemen, tetapkan min ke 0 dan max ke -1.

    • Jika nilai min lebih besar dari nilai indeks elemen terakhir dalam kunci atau nilai max, daftar kosong dikembalikan.

  • WITHSCORES: Nilai kembali mencakup skor elemen. Format data daftar yang dikembalikan adalah value1, score1, ..., valueN, scoreN. Misalnya:

    1) "b"
    2) "1#0#2"
    3) "a"
    4) "3#2#4"

Nilai kembali

Mengembalikan daftar elemen dalam rentang yang ditentukan. Jika opsi WITHSCORES digunakan, hasil kembali mencakup skor elemen.

Contoh

Contoh perintah:

EXZRANGE testkey 0 -1 WITHSCORES

Contoh nilai kembali:

1) "b"
2) "1#0#2"
3) "a"
4) "3#2#4"

EXZREVRANGE

Kategori

Deskripsi

Sintaks

EXZREVRANGE key min max [WITHSCORES]

Kompleksitas waktu

O(log(N)+M), dengan N adalah jumlah elemen dalam TairZset, dan M adalah jumlah elemen yang dikembalikan.

Deskripsi perintah

Kembalikan elemen dalam rentang tertentu dalam kunci TairZset. Elemen diurutkan berdasarkan skor dari tinggi ke rendah. Elemen dengan skor yang sama diurutkan dalam urutan leksikografis terbalik.

Catatan

Kecuali urutan pengurutan terbalik, perintah ini mirip dengan EXZRANGE.

Opsi

  • min, max: Ini merepresentasikan nilai indeks berbasis 0. Nilai indeks elemen pertama adalah 0, elemen kedua adalah 1, dan seterusnya. Gunakan dua parameter ini untuk menentukan interval tertutup.

    Catatan
    • Jika nilai indeks negatif, ini merepresentasikan offset dari akhir elemen yang dikembalikan. Misalnya, -1 merepresentasikan elemen terakhir dalam kunci, -2 merepresentasikan elemen kedua dari terakhir, dan seterusnya.

    • Untuk mengambil semua informasi elemen, tetapkan min ke 0 dan max ke -1.

    • Jika nilai min lebih besar dari nilai indeks elemen terakhir dalam kunci atau nilai max, daftar kosong dikembalikan.

  • WITHSCORES: Nilai kembali mencakup skor elemen. Format data daftar yang dikembalikan adalah value1, score1, ..., valueN, scoreN. Misalnya:

    1) "b"
    2) "1#0#2"
    3) "a"
    4) "3#2#4"

Nilai kembali

Mengembalikan daftar elemen dalam rentang yang ditentukan. Jika opsi WITHSCORES digunakan, hasil kembali mencakup skor elemen.

Contoh

Contoh perintah:

EXZREVRANGE testkey 0 -1 WITHSCORES

Contoh nilai kembali:

1) "a"
2) "3#2#4"
3) "b"
4) "1#0#2"

EXZRANGEBYSCORE

Kategori

Deskripsi

Sintaks

EXZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

Kompleksitas waktu

O(log(N)+M), dengan N adalah jumlah elemen dalam TairZset, dan M adalah jumlah elemen yang dikembalikan.

Catatan

Ketika M konstan (misalnya, saat menggunakan opsi LIMIT untuk selalu mengembalikan 10 elemen pertama), rumus ini dapat dianggap O(log(N)).

Deskripsi perintah

Kembalikan semua elemen dalam kunci TairZset dengan skor lebih besar dari atau sama dengan min dan kurang dari atau sama dengan max. Elemen diurutkan berdasarkan skor dari rendah ke tinggi. Elemen dengan skor yang sama diurutkan dalam urutan leksikografis.

Opsi

  • min, max: Ini merepresentasikan skor minimum dan maksimum. Jika elemen dalam kunci menggunakan skor multi-dimensi, pisahkan skor setiap dimensi dengan simbol hash (#).

    Catatan
    • Jika Anda tidak yakin dengan skor tertinggi dan terendah elemen dalam kunci dan ingin mengambil elemen dengan skor lebih besar dari atau sama dengan atau kurang dari atau sama dengan nilai tertentu, tetapkan min ke minus tak hingga (-inf) dan max ke positif tak hingga (+inf).

    • Rentang data default adalah interval tertutup. Untuk menentukan interval terbuka, tambahkan tanda kurung biasa sebelum rentang skor. Misalnya, (1 5 berarti mengembalikan elemen dengan skor lebih besar dari 1 dan kurang dari atau sama dengan 5.

  • WITHSCORES: Nilai kembali mencakup skor elemen.

  • LIMIT offset count: Tentukan jumlah dan rentang hasil yang dikembalikan. Jika count bernilai negatif, kembalikan semua elemen mulai dari offset tersebut.

    Catatan

    Jika offset besar, sistem akan melakukan traversal seluruh kunci untuk menemukan elemen offset sebelum mengembalikan elemen. Hal ini meningkatkan kompleksitas waktu.

Nilai kembali

Mengembalikan daftar elemen dalam rentang skor yang ditentukan. Jika opsi WITHSCORES digunakan, hasil kembali mencakup skor elemen.

Contoh perintah

Contoh perintah:

EXZRANGEBYSCORE testkey 0#0#0 6#6#6 WITHSCORES

Contoh nilai kembali:

1) "b"
2) "1#0#2"
3) "a"
4) "3#2#4"

EXZREVRANGEBYSCORE

Kategori

Deskripsi

Sintaks

EXZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]

Kompleksitas waktu

O(log(N)+M), dengan N adalah jumlah elemen dalam TairZset, dan M adalah jumlah elemen yang dikembalikan.

Catatan

Ketika M konstan (misalnya, saat menggunakan opsi LIMIT untuk selalu mengembalikan 10 elemen pertama), rumus ini dapat dianggap O(log(N)).

Deskripsi perintah

Kembalikan semua elemen dalam kunci TairZset dengan skor lebih besar dari atau sama dengan min dan kurang dari atau sama dengan max. Berbeda dengan pengurutan TairZset default, perintah ini mengurutkan elemen berdasarkan skor dari tinggi ke rendah. Elemen dengan skor yang sama diurutkan dalam urutan leksikografis terbalik.

Catatan

Perintah ini berfungsi mirip dengan EXZRANGEBYSCORE, tetapi memiliki urutan pengurutan yang berlawanan. Dalam perintah ini, max ditulis terlebih dahulu.

Opsi

  • min, max: Ini merepresentasikan skor minimum dan maksimum. Jika elemen dalam kunci menggunakan skor multi-dimensi, pisahkan skor setiap dimensi dengan simbol hash (#).

    Catatan
    • Jika Anda tidak yakin dengan skor tertinggi dan terendah elemen dalam kunci dan ingin mengambil elemen dengan skor lebih besar dari atau sama dengan atau kurang dari atau sama dengan nilai tertentu, tetapkan min ke minus tak hingga (-inf) dan max ke positif tak hingga (+inf).

    • Rentang data default adalah interval tertutup. Untuk menentukan interval terbuka, tambahkan tanda kurung biasa sebelum rentang skor. Misalnya, (1 5 berarti mengembalikan elemen dengan skor lebih besar dari 1 dan kurang dari atau sama dengan 5.

  • WITHSCORES: Nilai kembali mencakup skor elemen.

  • LIMIT offset count: Tentukan jumlah dan rentang hasil yang dikembalikan. Jika count bernilai negatif, kembalikan semua elemen mulai dari offset tersebut.

    Catatan

    Jika offset besar, sistem akan melakukan traversal seluruh kunci untuk menemukan elemen offset sebelum mengembalikan elemen. Hal ini meningkatkan kompleksitas waktu.

Nilai kembali

Mengembalikan daftar elemen dalam rentang skor yang ditentukan. Jika opsi WITHSCORES digunakan, hasil kembali mencakup skor elemen.

Contoh perintah

Contoh perintah:

EXZREVRANGEBYSCORE testkey 6#6#6 0#0#0 WITHSCORES

Contoh nilai kembali:

1) "a"
2) "3#2#4"
3) "b"
4) "1#0#2"

EXZRANGEBYLEX

Kategori

Deskripsi

Sintaks

EXZRANGEBYLEX key min max [LIMIT offset count]

Kompleksitas waktu

O(log(N)+M), dengan N adalah jumlah elemen dalam TairZset, dan M adalah jumlah elemen yang dikembalikan.

Catatan

Ketika M konstan (misalnya, saat menggunakan opsi LIMIT untuk mengembalikan 10 elemen pertama), rumus ini dapat dianggap O(log(N)).

Deskripsi perintah

Untuk memastikan urutan leksikografis, jika semua elemen dalam kunci memiliki skor yang sama, perintah ini mengembalikan elemen dalam kunci antara min dan max.

Catatan
  • Jika skor elemen dalam kunci berbeda, elemen yang dikembalikan tidak dapat diprediksi.

  • Fungsi memcmp() C membandingkan byte dari dua string elemen satu per satu. Elemen diurutkan dari rendah ke tinggi berdasarkan hasil perbandingan. Jika dua string berisi substring yang sama, string yang lebih panjang memiliki skor lebih tinggi.

Opsi

  • min, max: Ini merepresentasikan nama anggota minimum dan maksimum (sebagai string). Tentukan rentang karakter. Misalnya:

    • Interval terbuka: Tambahkan tanda kurung biasa sebelum nilai, seperti (a.

    • Interval tertutup: Tambahkan tanda kurung siku sebelum nilai, seperti [a

    Catatan

    Tak hingga positif dan negatif direpresentasikan sebagai + dan -, berturut-turut.

  • LIMIT offset count: Tentukan jumlah dan rentang hasil yang dikembalikan. Jika count bernilai negatif, kembalikan semua elemen mulai dari offset tersebut.

    Catatan

    Jika offset besar, sistem akan melakukan traversal seluruh kunci untuk menemukan elemen offset sebelum mengembalikan elemen. Hal ini meningkatkan kompleksitas waktu.

Nilai kembali

Mengembalikan daftar elemen yang namanya berada dalam rentang yang ditentukan.

Contoh perintah

Contoh perintah:

EXZRANGEBYLEX zzz [a [b

Contoh nilai kembali:

1) "aba"
2) "abc"

EXZREVRANGEBYLEX

Kategori

Deskripsi

Sintaks

EXZREVRANGEBYLEX key max min [LIMIT offset count]

Kompleksitas waktu

O(log(N)+M), dengan N adalah jumlah elemen dalam TairZset, dan M adalah jumlah elemen yang dikembalikan.

Catatan

Ketika M konstan (misalnya, saat menggunakan opsi LIMIT untuk selalu mengembalikan 10 elemen pertama), rumus ini dapat dianggap O(log(N)).

Deskripsi perintah

Untuk memastikan urutan leksikografis, jika semua elemen dalam kunci memiliki skor yang sama, perintah ini mengembalikan elemen dalam kunci antara max dan min.

Catatan

Perintah ini merupakan kebalikan dari EXZRANGEBYLEX. Perhatikan bahwa untuk perintah ini, parameter max ditentukan terlebih dahulu.

Opsi

  • min, max: Ini merepresentasikan nama anggota minimum dan maksimum (sebagai string). Tentukan rentang karakter. Misalnya:

    • Interval terbuka: Tambahkan tanda kurung biasa sebelum nilai, seperti (a.

    • Interval tertutup: Tambahkan tanda kurung siku sebelum nilai, seperti [a

    Catatan

    Tak hingga positif dan negatif direpresentasikan sebagai + dan -, berturut-turut.

  • LIMIT offset count: Tentukan jumlah dan rentang hasil yang dikembalikan. Jika count bernilai negatif, kembalikan semua elemen mulai dari offset tersebut.

    Catatan

    Jika offset besar, sistem akan melakukan traversal seluruh kunci untuk menemukan elemen offset sebelum mengembalikan elemen. Hal ini meningkatkan kompleksitas waktu.

Nilai kembali

Mengembalikan daftar elemen yang namanya berada dalam rentang yang ditentukan.

Contoh perintah

Contoh perintah:

EXZREVRANGEBYLEX zzz [b [a

Contoh nilai kembali:

1) "abc"
2) "aba"

EXZREM

Kategori

Deskripsi

Sintaks

EXZREM key member [member ...]

Kompleksitas waktu

O(M*log(N)), dengan N adalah jumlah elemen dalam TairZset, dan M adalah jumlah elemen yang dihapus.

Deskripsi perintah

Hapus anggota yang ditentukan dari kunci. Jika anggota yang ditentukan tidak ada, abaikan.

Catatan

Jika kunci yang ditentukan ada tetapi struktur datanya bukan TairZset, sistem mengembalikan error.

Opsi

Tidak ada

Nilai kembali

Mengembalikan jumlah anggota yang dihapus dari kunci, tidak termasuk anggota yang tidak ada.

Contoh perintah

Contoh perintah:

EXZREM testkey a

Contoh nilai kembali:

(integer) 1

EXZREMRANGEBYSCORE

Kategori

Deskripsi

Sintaks

EXZREMRANGEBYSCORE key min max

Kompleksitas waktu

O(log(N)+M), dengan N adalah jumlah elemen dalam TairZset, dan M adalah jumlah elemen yang dihapus.

Deskripsi perintah

Hapus elemen dari kunci TairZset dengan skor lebih besar dari atau sama dengan min dan kurang dari atau sama dengan max.

Opsi

min dan max merepresentasikan skor minimum dan maksimum. Jika elemen dalam kunci menggunakan skor multi-dimensi, pisahkan skor setiap dimensi dengan simbol hash (#).

Catatan
  • Jika Anda tidak yakin dengan skor tertinggi dan terendah elemen dalam kunci dan ingin menghapus elemen dengan skor lebih besar dari atau sama dengan atau kurang dari atau sama dengan nilai tertentu, tetapkan min ke minus tak hingga (-inf) dan max ke positif tak hingga (+inf).

  • Rentang data default adalah interval tertutup. Untuk menentukan interval terbuka, tambahkan tanda kurung biasa sebelum rentang skor. Misalnya, EXZREMRANGEBYSCORE (1 5 berarti menghapus elemen dengan skor lebih besar dari 1 dan kurang dari atau sama dengan 5.

Nilai kembali

Mengembalikan jumlah elemen yang dihapus.

Contoh perintah

Contoh perintah:

EXZREMRANGEBYSCORE testkey 3#2#4 6#6#6

Contoh nilai kembali:

(integer) 1

EXZREMRANGEBYRANK

Kategori

Deskripsi

Sintaks

EXZREMRANGEBYRANK key start stop

Kompleksitas waktu

O(log(N)+M), dengan N adalah jumlah elemen dalam TairZset, dan M adalah jumlah elemen yang dihapus oleh operasi ini.

Deskripsi perintah

Hapus elemen dari kunci TairZset dengan peringkat antara start dan stop.

Opsi

start dan stop adalah nilai indeks berbasis 0, di mana 0 merepresentasikan elemen dengan skor terendah. Nilai indeks negatif merepresentasikan offset dari elemen dengan skor tertinggi. Misalnya, -1 adalah elemen dengan skor tertinggi, -2 adalah elemen dengan skor tertinggi kedua, dan seterusnya.

Nilai kembali

Mengembalikan jumlah elemen yang dihapus.

Contoh perintah

Contoh perintah:

EXZREMRANGEBYRANK testkey 0 1EXZREVRANGEBYSCORE

Contoh nilai kembali:

(integer) 1

EXZREMRANGEBYLEX

Kategori

Deskripsi

Sintaks

EXZREMRANGEBYLEX key min max

Kompleksitas waktu

O(log(N)+M), dengan N adalah jumlah elemen dalam TairZset, dan M adalah jumlah elemen yang dihapus oleh operasi ini.

Deskripsi perintah

Untuk memastikan urutan leksikografis, jika semua elemen dalam kunci memiliki skor yang sama, perintah ini menghapus elemen dalam kunci antara max dan min.

Catatan

Jika Anda menggunakan nilai parameter min dan max yang sama untuk perintah ini dan perintah EXZRANGEBYLEX, perintah ini akan menghapus elemen yang sama dengan yang dikembalikan oleh EXZRANGEBYLEX.

Opsi

min, max: Ini merepresentasikan nama anggota minimum dan maksimum (sebagai string). Tentukan rentang karakter. Misalnya:

  • Interval terbuka: Tambahkan tanda kurung biasa sebelum nilai, seperti (a.

  • Interval tertutup: Tambahkan tanda kurung siku sebelum nilai, seperti [a

Nilai kembali

Jumlah elemen yang dihapus.

Contoh perintah

Contoh perintah:

EXZREMRANGEBYLEX [a [b

Contoh nilai kembali:

(integer) 2

EXZCARD

Kategori

Deskripsi

Sintaks

EXZCARD key

Kompleksitas waktu

O(1)

Deskripsi perintah

Kembalikan kardinalitas (jumlah elemen) dalam kunci TairZset.

Opsi

Tidak ada

Nilai kembali

Mengembalikan jumlah elemen dalam kunci. Jika kunci tidak ada, mengembalikan 0.

Contoh perintah

Contoh perintah:

EXZCARD testkey

Contoh nilai kembali:

(integer) 2

EXZRANK

Kategori

Deskripsi

Sintaks

EXZRANK key member

Kompleksitas waktu

O(log(N))

Deskripsi perintah

Kembalikan peringkat suatu anggota dalam kunci TairZset, diurutkan berdasarkan skor dari rendah ke tinggi. Peringkat (atau indeks) dimulai dari 0, di mana anggota dengan skor terendah memiliki peringkat 0.

Opsi

Tidak ada

Nilai kembali

  • Jika anggota yang ditentukan ada dalam kunci, mengembalikan peringkat anggota tersebut (bilangan bulat).

  • Jika kunci atau anggota tidak ditemukan, mengembalikan nil.

Contoh perintah

Contoh perintah:

EXZRANK testkey b

Contoh nilai kembali:

(integer) 0

EXZREVRANK

Kategori

Deskripsi

Sintaks

EXZREVRANK key member

Kompleksitas waktu

O(log(N))

Deskripsi perintah

Kembalikan peringkat suatu anggota dalam kunci TairZset. Hasil diurutkan berdasarkan skor dari tinggi ke rendah. Peringkat (atau indeks) dimulai dari 0, di mana anggota dengan skor tertinggi memiliki peringkat 0.

Catatan

Kecuali aturan pengurutan terbalik, perintah ini mirip dengan EXZRANK.

Opsi

Tidak ada

Nilai kembali

  • Jika anggota yang ditentukan ada dalam kunci, mengembalikan peringkat anggota tersebut (bilangan bulat).

  • Jika kunci atau anggota tidak ditemukan, mengembalikan nil.

Contoh perintah

Contoh perintah:

EXZREVRANK testkey b

Contoh nilai kembali:

(integer) 1

EXZCOUNT

Kategori

Deskripsi

Sintaks

EXZCOUNT key min max

Kompleksitas waktu

O(log(N)), dengan N adalah jumlah elemen dalam TairZset.

Catatan

Karena operasi ini mengambil rentang kueri pada level elemen, jumlah pekerjaan yang terlibat tidak sebanding dengan ukuran rentang kueri.

Deskripsi perintah

Kembalikan jumlah elemen dalam kunci TairZset dengan skor antara min dan max.

Opsi

min, max: Ini merepresentasikan skor minimum dan maksimum. Jika elemen dalam kunci menggunakan skor multi-dimensi, pisahkan skor setiap dimensi dengan simbol hash (#).

Catatan
  • Jika Anda tidak yakin dengan skor tertinggi dan terendah elemen dalam kunci dan ingin mengambil elemen dengan skor lebih besar dari atau sama dengan atau kurang dari atau sama dengan nilai tertentu, tetapkan min ke minus tak hingga dan max ke positif tak hingga.

  • Rentang data default adalah interval tertutup. Untuk menentukan interval terbuka, tambahkan tanda kurung biasa sebelum rentang skor. Misalnya, (1 5 berarti mengembalikan elemen dengan skor lebih besar dari 1 dan kurang dari atau sama dengan 5.

Nilai kembali

Mengembalikan jumlah elemen (bilangan bulat) dalam rentang skor yang ditentukan.

Contoh perintah

Contoh perintah:

EXZCOUNT testkey (1#0#2 6#6#6

Contoh nilai kembali:

(integer) 1

EXZLEXCOUNT

Kategori

Deskripsi

Sintaks

EXZLEXCOUNT key min max

Kompleksitas waktu

O(log(N)), dengan N adalah jumlah elemen dalam TairZset.

Catatan

Karena operasi ini mengambil rentang kueri pada level elemen, jumlah pekerjaan yang terlibat tidak sebanding dengan ukuran rentang kueri.

Deskripsi perintah

Untuk memastikan urutan leksikografis, jika semua elemen dalam kunci memiliki skor yang sama, perintah ini mengembalikan jumlah elemen dalam kunci dengan nilai antara min dan max.

Catatan
  • Jika skor elemen dalam kunci berbeda, elemen yang dikembalikan tidak dapat diprediksi.

  • Fungsi memcmp() C membandingkan byte dari dua string elemen satu per satu. Elemen diurutkan dari rendah ke tinggi berdasarkan hasil perbandingan. Jika dua string berisi substring yang sama, string yang lebih panjang memiliki skor lebih tinggi.

Opsi

min, max: Ini merepresentasikan nama anggota minimum dan maksimum (sebagai string). Tentukan rentang karakter. Misalnya:

  • Interval terbuka: Tambahkan tanda kurung biasa sebelum nilai, seperti (a.

  • Interval tertutup: Tambahkan tanda kurung siku sebelum nilai, seperti [a

Nilai kembali

Mengembalikan jumlah elemen (bilangan bulat) dalam rentang skor yang ditentukan.

Contoh perintah

Contoh perintah:

EXZLEXCOUNT zzz [a [b

Contoh nilai kembali:

(integer) 2

EXZRANKBYSCORE

Kategori

Deskripsi

Sintaks

EXZRANKBYSCORE key score

Kompleksitas waktu

O(log(N))

Deskripsi perintah

Hitung peringkat skor tertentu dalam kunci TairZset, diurutkan berdasarkan skor dari rendah ke tinggi. Peringkat (atau indeks) dimulai dari 0, di mana anggota dengan skor terendah memiliki peringkat 0.

Catatan

Jika skor yang ditentukan tidak ada, kembalikan perkiraan peringkatnya dalam kunci TairZset. Jika skor yang ditentukan sudah ada, Tair menempatkannya sebelum skor yang sudah ada secara default.

Opsi

Tidak ada

Nilai kembali

Mengembalikan peringkat skor yang ditentukan dalam kunci.

Contoh perintah

Contoh perintah:

EXZRANKBYSCORE testkey 2#0#2 

Contoh nilai kembali:

(integer) 1

EXZREVRANKBYSCORE

Kategori

Deskripsi

Sintaks

EXZREVRANKBYSCORE key score

Kompleksitas waktu

O(log(N))

Deskripsi perintah

Hitung peringkat skor tertentu dalam kunci TairZset, diurutkan berdasarkan skor dari tinggi ke rendah. Peringkat (atau indeks) dimulai dari 0, di mana anggota dengan skor tertinggi memiliki peringkat 0.

Catatan

Jika skor yang ditentukan tidak ada, kembalikan perkiraan peringkatnya dalam kunci TairZset. Jika skor yang ditentukan sudah ada, Tair menempatkannya setelah skor yang sudah ada secara default.

Opsi

Tidak ada

Nilai kembali

Mengembalikan peringkat skor yang ditentukan dalam kunci.

Contoh perintah

Contoh perintah:

EXZREVRANKBYSCORE testkey 2#0#2 

Contoh nilai kembali:

(integer) 1