全部产品
Search
文档中心

Tair (Redis® OSS-Compatible):exZset

更新时间:Nov 10, 2025

TairZset (exZset) memungkinkan pengurutan item berdasarkan skor dengan hingga 256 dimensi tipe double. Fitur ini sangat berguna untuk papan peringkat di industri seperti game, siaran langsung, musik, dan e-commerce. Dengan kemampuan ini, efisiensi pemrosesan data meningkat secara signifikan, serta implementasi sisi klien menjadi lebih sederhana karena tidak diperlukan proses enkode atau dekode.

Pengenalan TairZset

Redis Sorted Set asli (juga dikenal sebagai Zset) hanya mendukung pengurutan berdasarkan satu nilai skor presisi ganda, sehingga implementasi pengurutan multi-dimensi menjadi sulit. Sebagai contoh, metode seperti penyambungan tingkat bit IEEE 754 bersifat kompleks, mengurangi presisi, dan mencegah penggunaan perintah EXZINCRBY.

Struktur data TairZset, yang dikembangkan oleh Alibaba Cloud, menyederhanakan implementasi pengurutan multi-dimensi. Struktur ini memiliki keunggulan berikut dibandingkan metode tradisional:

  • Mendukung pengurutan berdasarkan skor dengan hingga 256 dimensi tipe double. Prioritas pengurutan adalah dari kiri ke kanan.

    Untuk skor multi-dimensi, skor paling kiri memiliki prioritas tertinggi. Misalnya, untuk skor tiga dimensi seperti score1#score2#score3, TairZset pertama-tama membandingkan score1. Jika nilai score1 sama, TairZset kemudian membandingkan score2. Jika nilai score2 juga sama, TairZset membandingkan score3. Jika semua dimensi skor identik, elemen diurutkan berdasarkan urutan leksikografis (urutan ASCII).

    Untuk mempermudah pemahaman, Anda dapat menganggap simbol pagar (#) sebagai titik desimal (.). Sebagai contoh, hubungan antara 0#99, 99#90, dan 99#99 dapat dipahami sebagai 0.99 < 99.90 < 99.99. Oleh karena itu, 0#99 < 99#90 < 99#99.

  • Mendukung perintah EXZINCRBY. Anda tidak perlu lagi mengambil data saat ini, menambahkan nilai secara lokal, lalu menulisnya kembali ke Tair.

  • Menyediakan API yang mirip dengan API Zset asli.

  • Menyediakan kemampuan untuk papan peringkat standar dan papan peringkat arsitektur terdistribusi .

  • Menyediakan klien TairJedis open-source. Anda tidak perlu melakukan encoding atau decoding apa pun. Anda juga dapat menggunakan implementasi open-source ini sebagai referensi untuk mengembangkan klien dalam bahasa lain.

Skenario tipikal

TairZset cocok untuk skenario papan peringkat di industri seperti game, live streaming, musik, dan e-commerce. Contohnya meliputi hal-hal berikut:

  • Papan peringkat live streaming: Dalam kompetisi streamer, streamer pertama-tama diurutkan berdasarkan skor popularitas saat ini. Jika skor popularitas mereka sama, mereka diurutkan berdasarkan jumlah suka. Jika jumlah suka juga sama, mereka diurutkan berdasarkan total nilai hadiah yang diterima.

  • Tabel medali: Peserta diurutkan berdasarkan jumlah medali emas, perak, dan perunggu. Mereka pertama-tama diurutkan berdasarkan jumlah medali emas. Jika jumlah medali emas sama, mereka diurutkan berdasarkan jumlah medali perak. Jika jumlah medali perak juga sama, mereka diurutkan berdasarkan jumlah medali perunggu.

  • Papan peringkat game: Pemain diurutkan berdasarkan beberapa dimensi, seperti skor, waktu penyelesaian tugas, dan level peringkat.

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

Praktik terbaik

Prasyarat

Instans harus berupa Tair Optimasi memori instans. Jika instans tersebut merupakan instans optimasi memori yang kompatibel dengan Redis 5.0, versi minornya harus 1.7.1 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 bahwa semua perintah dapat dijalankan sesuai harapan.

Catatan

Perintah dalam topik ini berlaku untuk data TairZset di dalam Tair instans.

Perintah

Perintah

Sintaks

Deskripsi

EXZADD

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

Menyimpan satu atau lebih anggota dengan skor mereka di TairZset pada kunci yang ditentukan.

Catatan

Untuk mengimplementasikan pengurutan multi-dimensi, gunakan simbol pagar (#) untuk memisahkan skor untuk setiap dimensi, seperti 111#222#121. Semua anggota dalam kunci harus memiliki format skor yang sama.

EXZINCRBY

EXZINCRBY key increment member

Menambahkan skor dari seorang anggota di TairZset pada kunci yang ditentukan dengan nilai increment.

EXZSCORE

EXZSCORE key member

Mengembalikan skor dari seorang anggota di TairZset pada kunci yang ditentukan. Jika kunci atau anggota tidak ada, maka akan mengembalikan nil.

EXZRANGE

EXZRANGE key min max [WITHSCORES]

Mengembalikan rentang elemen tertentu dari TairZset pada kunci yang ditentukan.

EXZREVRANGE

EXZREVRANGE key min max [WITHSCORES]

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

Catatan

Selain urutan pengurutan terbalik, perintah ini mirip dengan EXZRANGE.

EXZRANGEBYSCORE

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

Mengembalikan semua elemen di TairZset pada kunci yang ditentukan dengan skor antara min dan max (inklusif). Elemen diurutkan dari skor rendah ke tinggi. Elemen dengan skor yang sama diurutkan berdasarkan urutan leksikografis.

EXZREVRANGEBYSCORE

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

Mengembalikan semua elemen di TairZset pada kunci yang ditentukan dengan skor antara min dan max (inklusif). Berbeda dengan urutan pengurutan default, perintah ini mengembalikan elemen yang diurutkan dari skor tinggi ke rendah. Elemen dengan skor yang sama diurutkan dalam urutan leksikografis terbalik.

Catatan

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

EXZRANGEBYLEX

EXZRANGEBYLEX key min max [LIMIT offset count]

Ketika semua elemen di TairZset memiliki skor yang sama, perintah ini mengembalikan semua elemen pada kunci yang ditentukan yang berada di antara rentang leksikografis min dan max.

EXZREVRANGEBYLEX

EXZREVRANGEBYLEX key max min [LIMIT offset count]

Ketika semua elemen di TairZset memiliki skor yang sama, perintah ini mengembalikan semua elemen pada kunci yang ditentukan yang berada di antara rentang leksikografis max dan min.

Catatan

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

EXZREM

EXZREM key member [member ...]

Menghapus anggota yang ditentukan dari TairZset pada kunci yang ditentukan. Anggota yang tidak ada diabaikan.

EXZREMRANGEBYSCORE

EXZREMRANGEBYSCORE key min max

Menghapus semua elemen di TairZset pada kunci yang ditentukan dengan skor antara min dan max (inklusif).

EXZREMRANGEBYRANK

EXZREMRANGEBYRANK key start stop

Menghapus semua elemen di TairZset pada kunci yang ditentukan dengan peringkat antara start dan stop.

EXZREMRANGEBYLEX

EXZREMRANGEBYLEX key min max

Ketika semua elemen di TairZset memiliki skor yang sama, perintah ini menghapus semua elemen pada kunci yang ditentukan yang berada di antara rentang leksikografis max dan min.

Catatan

Jika Anda menjalankan perintah ini dan perintah EXZRANGEBYLEX dengan nilai parameter min dan max yang sama, perintah ini menghapus elemen-elemen yang sama dengan yang dikembalikan oleh perintah EXZRANGEBYLEX.

EXZCARD

EXZCARD key

Mengembalikan kardinalitas (jumlah elemen) dari TairZset pada kunci yang ditentukan.

EXZRANK

EXZRANK key member

Mengembalikan peringkat dari seorang anggota di TairZset pada kunci yang ditentukan, dengan skor diurutkan dari rendah ke tinggi. Peringkat (atau indeks) adalah 0-based, sehingga anggota dengan skor terendah memiliki peringkat 0.

EXZREVRANK

EXZREVRANK key member

Mengembalikan peringkat dari seorang anggota di TairZset pada kunci yang ditentukan, dengan skor diurutkan dari tinggi ke rendah. Peringkat (atau indeks) adalah 0-based, sehingga anggota dengan skor tertinggi memiliki peringkat 0.

Catatan

Selain urutan pengurutan terbalik, perintah ini mirip dengan EXZRANK.

EXZCOUNT

EXZCOUNT key min max

Mengembalikan jumlah elemen di TairZset pada kunci yang ditentukan dengan skor antara min dan max.

EXZLEXCOUNT

EXZLEXCOUNT key min max

Ketika semua elemen di TairZset memiliki skor yang sama, perintah ini mengembalikan jumlah elemen pada kunci yang ditentukan yang berada di antara rentang leksikografis min dan max.

EXZRANKBYSCORE

EXZRANKBYSCORE key score

Menghitung peringkat dari skor tertentu di TairZset pada kunci yang ditentukan, dengan skor diurutkan dari rendah ke tinggi. Peringkat (atau indeks) adalah 0-based, sehingga anggota dengan skor terendah memiliki peringkat 0.

Catatan

Jika skor yang ditentukan tidak ada, perintah ini mengembalikan peringkat prospektif dari skor tersebut di TairZset. Jika skor yang ditentukan sudah ada, Tair secara default menempatkan skor yang ditentukan sebelum skor yang sudah ada.

EXZREVRANKBYSCORE

EXZREVRANKBYSCORE key score

Menghitung peringkat dari skor tertentu di TairZset pada kunci yang ditentukan, dengan skor diurutkan dari tinggi ke rendah. Peringkat (atau indeks) adalah 0-based, sehingga anggota dengan skor tertinggi memiliki peringkat 0.

Catatan

Jika skor yang ditentukan tidak ada, perintah ini mengembalikan peringkat prospektif dari skor tersebut di TairZset. Jika skor yang ditentukan sudah ada, Tair secara default menempatkan skor yang ditentukan setelah skor yang sudah ada.

DEL

DEL key [key ...]

Menghapus satu atau lebih kunci TairZset menggunakan perintah DEL asli Redis.

Catatan

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

  • Kata kunci huruf besar: menunjukkan kata kunci perintah.

  • Teks miring: menunjukkan variabel.

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

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

  • ...: menunjukkan bahwa parameter sebelum simbol ini dapat diulang spesifikasinya.

EXZADD

Kategori

Deskripsi

Sintaksis

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

Kompleksitas waktu

O(N)

Deskripsi perintah

Menyimpan satu atau lebih anggota dengan skor mereka di TairZset pada kunci yang ditentukan. Sistem melakukan tindakan berbeda berdasarkan apakah kunci dan anggota ada:

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

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

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

Catatan

Untuk mengimplementasikan pengurutan multi-dimensi, gunakan simbol pagar (#) untuk memisahkan skor untuk setiap dimensi, seperti 111#222#121. Semua anggota dalam kunci harus memiliki format skor yang sama.

Opsi

  • NX: Menambahkan hanya elemen baru. Tidak memperbarui elemen yang ada.

  • XX: Memperbarui hanya elemen yang ada. Tidak menambahkan elemen baru.

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

    Catatan

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

  • INCR: Ketika opsi ini ditentukan, EXZADD berperilaku seperti EXZINCRBY. Dalam mode ini, Anda hanya dapat menentukan satu pasangan skor-elemen.

Nilai kembali

Bilangan bulat yang menunjukkan hal berikut:

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

  • Jika opsi CH ditentukan, mengembalikan jumlah elemen yang berubah (ditambahkan atau diperbarui).

  • Jika opsi INCR ditentukan, mengembalikan skor baru dari anggota sebagai string. Jika Anda menggunakan skor multi-dimensi, formatnya adalah "skor1#skor2#skor3#...", seperti 2#0#6.

    Catatan

    Jika operasi dibatalkan (karena perintah mencakup opsi XX atau NX), maka akan mengembalikan nil.

Contoh

Contoh perintah:

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

Contoh hasil:

(integer) 2

EXZINCRBY

Kategori

Deskripsi

Sintaksis

EXZINCRBY key increment member

Kompleksitas waktu

O(log(N))

Deskripsi perintah

Menambahkan skor dari sebuah anggota di TairZset pada kunci yang ditentukan dengan nilai increment. Sistem melakukan tindakan berbeda berdasarkan apakah kunci dan anggota ada:

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

  • Jika kunci dan anggota yang ditentukan sudah ada, sistem akan memperbarui (menambah) skor.

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

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

  • Nilai 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 dari anggota sebagai string. Jika Anda menggunakan skor multi-dimensi, formatnya adalah "skor1#skor2#skor3#...", seperti 2#0#6.

Contoh

Contoh perintah:

EXZINCRBY testkey 2#2#1 a

Contoh hasil:

"3#2#4"

EXZSCORE

Kategori

Deskripsi

Sintaksis

EXZSCORE key member

Kompleksitas waktu

O(1)

Deskripsi perintah

Mengembalikan skor dari anggota dalam TairZset pada kunci yang ditentukan. Jika kunci atau anggota tidak ada, maka mengembalikan nilai nil.

Opsi

Tidak ada

Nilai pengembalian

Mengembalikan skor anggota sebagai string. Jika Anda menggunakan skor multi-dimensi, formatnya adalah "skor1#skor2#skor3#...", seperti 2#0#6.

Contoh

Contoh perintah:

EXZSCORE testkey a

Contoh hasil:

"3#2#4"

EXZRANGE

Kategori

Deskripsi

Sintaksis

EXZRANGE key min max [WITHSCORES]

Kompleksitas waktu

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

Deskripsi perintah

Mengembalikan rentang elemen tertentu dari TairZset pada kunci yang ditentukan.

Opsi

  • min dan max adalah indeks berbasis 0. Indeks elemen pertama adalah 0, indeks elemen kedua adalah 1, dan seterusnya. Anda dapat menggunakan kedua parameter ini untuk menentukan interval tertutup.

    Catatan
    • Jika indeks bernilai negatif, itu menunjukkan offset dari akhir elemen yang dikembalikan. Misalnya, -1 mewakili elemen terakhir dari kunci, dan -2 mewakili elemen kedua dari belakang.

    • Untuk menanyakan semua elemen, atur min ke 0 dan max ke -1.

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

  • WITHSCORES: Menyertakan skor elemen dalam nilai kembali. Format data dari daftar yang dikembalikan adalah value1, score1, ..., valueN, scoreN. Contohnya:

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

Nilai kembali

Mengembalikan daftar elemen dalam rentang yang ditentukan. Jika Anda menggunakan opsi WITHSCORES, nilai kembali mencakup skor elemen.

Contoh

Contoh perintah:

EXZRANGE testkey 0 -1 WITHSCORES

Contoh tanggapan:

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

EXZREVRANGE

Kategori

Deskripsi

Sintaksis

EXZREVRANGE key min max [WITHSCORES]

Kompleksitas waktu

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

Deskripsi perintah

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

Catatan

Selain urutan pengurutan terbalik, perintah ini mirip dengan EXZRANGE.

Opsi

  • min dan max adalah indeks berbasis 0. Indeks elemen pertama adalah 0, indeks elemen kedua adalah 1, dan seterusnya. Anda dapat menggunakan kedua parameter ini untuk menentukan interval tertutup.

    Catatan
    • Jika indeks negatif, itu menunjukkan offset dari akhir elemen yang dikembalikan. Misalnya, -1 mewakili elemen terakhir dari kunci, dan -2 mewakili elemen kedua terakhir.

    • Untuk menanyakan semua elemen, atur min ke 0 dan max ke -1.

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

  • WITHSCORES: Termasuk skor elemen dalam nilai kembali. Format data dari daftar yang dikembalikan adalah value1, score1, ..., valueN, scoreN. Contohnya:

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

Nilai kembali

Mengembalikan daftar elemen dalam rentang yang ditentukan. Jika Anda menggunakan opsi WITHSCORES, nilai kembali mencakup skor elemen.

Contoh

Contoh perintah:

EXZREVRANGE testkey 0 -1 WITHSCORES

Contoh hasil:

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

EXZRANGEBYSCORE

Kategori

Deskripsi

Sintaksis

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

Kompleksitas waktu

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

Catatan

Ketika M adalah konstanta (misalnya, ketika Anda menggunakan opsi LIMIT untuk selalu mengembalikan 10 elemen teratas), kompleksitas dapat dianggap O(log(N)).

Deskripsi perintah

Mengembalikan semua elemen dalam TairZset pada kunci yang ditentukan dengan skor antara min dan max (inklusif). Elemen diurutkan dari skor rendah ke tinggi. Elemen dengan skor yang sama diurutkan berdasarkan urutan leksikografis.

Opsi

  • min dan max mewakili skor minimum dan maksimum. Jika elemen dalam kunci menggunakan skor multi-dimensi, gunakan simbol pagar (#) untuk memisahkan skor untuk setiap dimensi.

    Catatan
    • Jika Anda tidak yakin tentang skor tertinggi dan terendah dari elemen dalam kunci dan ingin menanyakan elemen dengan skor lebih besar dari atau sama dengan, atau kurang dari atau sama dengan nilai tertentu, atur min dan max ke negatif tak terhingga (-inf) dan positif tak terhingga (+inf), masing-masing.

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

  • WITHSCORES: Termasuk skor elemen dalam nilai kembali.

  • LIMIT offset count: Menentukan jumlah dan interval hasil yang dikembalikan. Jika count negatif, semua elemen dari offset akan dikembalikan.

    Catatan

    Jika offset besar, seluruh kunci harus dilintasi untuk menemukan elemen offset sebelum elemen dapat dikembalikan. Ini meningkatkan kompleksitas waktu.

Nilai kembali

Mengembalikan daftar elemen dalam rentang skor yang ditentukan. Jika Anda menggunakan opsi WITHSCORES, nilai kembali mencakup skor elemen.

Contoh

Contoh perintah:

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

Contoh pengembalian:

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

EXZREVRANGEBYSCORE

Kategori

Deskripsi

Sintaksis

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

Kompleksitas waktu

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

Catatan

Ketika M adalah konstanta (misalnya, ketika Anda menggunakan opsi LIMIT untuk selalu mengembalikan 10 elemen teratas), kompleksitas dapat dianggap O(log(N)).

Deskripsi perintah

Mengembalikan semua elemen dalam TairZset pada kunci yang ditentukan dengan skor antara min dan max (inklusif). Berbeda dengan urutan pengurutan default dalam TairZset, perintah ini mengembalikan elemen yang diurutkan dari skor tinggi ke rendah. Elemen dengan skor yang sama diurutkan dalam urutan leksikografis terbalik.

Catatan

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

Opsi

  • min dan max mewakili skor minimum dan maksimum. Jika elemen dalam kunci menggunakan skor multi-dimensi, gunakan simbol pagar (#) untuk memisahkan skor untuk setiap dimensi.

    Catatan
    • Jika Anda tidak yakin tentang skor tertinggi dan terendah dari elemen dalam kunci dan ingin menanyakan elemen dengan skor lebih besar dari atau sama dengan, atau kurang dari atau sama dengan nilai tertentu, atur min dan max ke negatif tak terhingga (-inf) dan positif tak terhingga (+inf), masing-masing.

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

  • WITHSCORES: Termasuk skor elemen dalam nilai kembali.

  • LIMIT offset count: Menentukan jumlah dan interval hasil yang dikembalikan. Jika count negatif, semua elemen dari offset akan dikembalikan.

    Catatan

    Jika offset besar, seluruh kunci harus dilalui untuk menemukan elemen offset sebelum elemen dapat dikembalikan. Ini meningkatkan kompleksitas waktu.

Nilai kembali

Mengembalikan daftar elemen dalam rentang skor yang ditentukan. Jika Anda menggunakan opsi WITHSCORES, nilai kembali mencakup skor elemen.

Contoh

Contoh perintah:

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

Contoh hasil:

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

EXZRANGEBYLEX

Kategori

Deskripsi

Sintaksis

EXZRANGEBYLEX key min max [LIMIT offset count]

Kompleksitas waktu

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

Catatan

Ketika M adalah konstanta (misalnya, ketika Anda menggunakan opsi LIMIT untuk mengembalikan 10 elemen teratas), kompleksitas dapat dianggap O(log(N)).

Deskripsi perintah

Ketika semua elemen dalam TairZset memiliki skor yang sama, perintah ini mengembalikan elemen dari kunci yang berada di antara rentang leksikografis min dan max. Ini memastikan bahwa elemen diurutkan berdasarkan urutan leksikografis.

Catatan
  • Jika elemen dalam kunci memiliki skor berbeda, elemen yang dikembalikan tidak terdefinisi.

  • Perintah ini menggunakan fungsi memcmp() C untuk membandingkan byte dalam dua string elemen satu per satu. Elemen diurutkan dari rendah ke tinggi berdasarkan hasil perbandingan. Jika dua string memiliki substring yang sama, string yang lebih panjang dianggap memiliki nilai yang lebih tinggi.

Opsi

  • min dan max mewakili nama anggota minimum dan maksimum sebagai string. Anda harus menentukan rentang karakter. Contohnya:

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

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

    Catatan

    Positif dan negatif tak terhingga diwakili oleh + dan -, masing-masing.

  • LIMIT offset count: Menentukan jumlah dan interval hasil yang dikembalikan. Jika count negatif, semua elemen dari offset akan dikembalikan.

    Catatan

    Jika offset besar, seluruh kunci harus dilintasi untuk menemukan elemen offset sebelum elemen dapat dikembalikan. Ini meningkatkan kompleksitas waktu.

Nilai pengembalian

Mengembalikan daftar elemen yang namanya berada dalam rentang yang ditentukan.

Contoh

Contoh perintah:

EXZRANGEBYLEX zzz [a [b

Contoh pengembalian:

1) "aba"
2) "abc"

EXZREVRANGEBYLEX

Kategori

Deskripsi

Sintaksis

EXZREVRANGEBYLEX key max min [LIMIT offset count]

Kompleksitas waktu

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

Catatan

Ketika M adalah konstan (misalnya, ketika Anda menggunakan opsi LIMIT untuk selalu mengembalikan 10 elemen teratas), kompleksitas dapat dianggap O(log(N)).

Deskripsi perintah

Ketika semua elemen dalam TairZset memiliki skor yang sama, perintah ini mengembalikan elemen dari kunci yang berada dalam rentang leksikografis maksimum dan minimum.

Catatan

Selain urutan pengurutan terbalik, perintah ini mirip dengan EXZRANGEBYLEX. Perhatikan bahwa max mendahului min dalam perintah ini.

Opsi

  • min dan max mewakili nama anggota minimum dan maksimum sebagai string. Anda harus menentukan rentang karakter. Contohnya:

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

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

    Catatan

    Positif dan negatif tak terhingga diwakili oleh + dan -, masing-masing.

  • LIMIT offset count: Menentukan jumlah dan interval hasil yang dikembalikan. Jika count negatif, semua elemen dari offset akan dikembalikan.

    Catatan

    Jika offset besar, seluruh kunci harus dilalui untuk menemukan elemen offset sebelum elemen dapat dikembalikan. Ini meningkatkan kompleksitas waktu.

Nilai kembali

Mengembalikan daftar elemen yang namanya berada dalam rentang yang ditentukan.

Contoh

Contoh perintah:

EXZREVRANGEBYLEX zzz [b [a

Contoh hasil:

1) "abc"
2) "aba"

EXZREM

Kategori

Deskripsi

Sintaksis

EXZREM key member [member ...]

Kompleksitas waktu

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

Deskripsi perintah

Menghapus anggota yang ditentukan dari TairZset pada kunci yang ditentukan. Anggota yang tidak ada diabaikan.

Catatan

Jika kunci yang ditentukan ada tetapi struktur datanya bukan TairZset, kesalahan akan dikembalikan.

Opsi

Tidak ada

Nilai kembali

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

Contoh

Contoh perintah:

EXZREM testkey a

Contoh hasil:

(integer) 1

EXZREMRANGEBYSCORE

Kategori

Deskripsi

Sintaksis

EXZREMRANGEBYSCORE key min max

Kompleksitas waktu

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

Deskripsi perintah

Menghapus semua elemen dalam TairZset pada kunci yang ditentukan dengan skor antara min dan max (inklusif).

Opsi

min dan max mewakili skor minimum dan maksimum. Jika elemen dalam kunci menggunakan skor multi-dimensi, gunakan simbol pagar (#) untuk memisahkan skor untuk setiap dimensi.

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

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

Nilai kembali

Mengembalikan jumlah elemen yang dihapus.

Contoh

Contoh perintah:

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

Contoh hasil:

(integer) 1

EXZREMRANGEBYRANK

Kategori

Deskripsi

Sintaksis

EXZREMRANGEBYRANK key start stop

Kompleksitas waktu

O(log(N)+M), di mana N adalah jumlah elemen dalam TairZset dan M adalah jumlah elemen yang dihapus oleh operasi tersebut.

Deskripsi perintah

Menghapus semua elemen dalam TairZset pada kunci yang ditentukan dengan peringkat antara start dan stop.

Opsi

start dan stop adalah indeks berbasis 0, di mana 0 mewakili elemen dengan skor terendah. Jika indeks negatif, itu mewakili offset dari elemen dengan skor tertinggi. Sebagai contoh, -1 adalah elemen dengan skor tertinggi, dan -2 adalah elemen dengan skor tertinggi kedua.

Nilai kembali

Jumlah elemen yang dihapus.

Contoh

Contoh perintah:

EXZREMRANGEBYRANK testkey 0 1EXZREVRANGEBYSCORE

Contoh nilai kembali:

(integer) 1

EXZREMRANGEBYLEX

Kategori

Deskripsi

Sintaksis

EXZREMRANGEBYLEX key min max

Kompleksitas waktu

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

Deskripsi perintah

Ketika semua elemen dalam TairZset memiliki skor yang sama, perintah ini menghapus elemen dari key yang berada di antara rentang leksikografis maksimum dan minimum. Ini memastikan bahwa elemen diurutkan berdasarkan urutan leksikografis.

Catatan

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

Opsi

min dan max mewakili nama anggota minimum dan maksimum sebagai string. Anda harus menentukan rentang karakter. Contohnya:

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

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

Nilai kembali

Jumlah elemen yang dihapus.

Contoh

Contoh perintah:

EXZREMRANGEBYLEX [a [b

Contoh hasil:

(integer) 2

EXZCARD

Kategori

Deskripsi

Sintaksis

EXZCARD key

Kompleksitas waktu

O(1)

Deskripsi perintah

Mengembalikan kardinalitas (jumlah elemen) dari TairZset pada key yang ditentukan.

Opsi

Tidak ada

Nilai kembali

Mengembalikan jumlah elemen dalam key. Jika key tidak ada, maka mengembalikan 0.

Contoh

Contoh perintah:

EXZCARD testkey

Contoh hasil:

(integer) 2

EXZRANK

Kategori

Deskripsi

Sintaksis

EXZRANK key member

Kompleksitas waktu

O(log(N))

Deskripsi perintah

Mengembalikan peringkat anggota dalam TairZset pada kunci yang ditentukan, dengan skor diurutkan dari rendah ke tinggi. Peringkat (atau indeks) dimulai dari 0, sehingga anggota dengan skor terendah memiliki peringkat 0.

Opsi

Tidak ada

Nilai kembali

  • Jika anggota yang ditentukan ada di dalam kunci, mengembalikan peringkat anggota sebagai bilangan bulat.

  • Jika kunci atau anggota dalam kunci tidak ada, mengembalikan nil.

Contoh

Contoh perintah:

EXZRANK testkey b

Contoh hasil:

(integer) 0

EXZREVRANK

Kategori

Deskripsi

Sintaksis

EXZREVRANK key member

Kompleksitas waktu

O(log(N))

Deskripsi perintah

Mengembalikan peringkat anggota dalam TairZset pada kunci yang ditentukan. Hasilnya diurutkan dari skor tertinggi ke terendah. Peringkat (atau indeks) dimulai dari 0, sehingga anggota dengan skor tertinggi memiliki peringkat 0.

Catatan

Selain urutan pengurutan terbalik, perintah ini mirip dengan EXZRANK.

Opsi

Tidak ada

Nilai kembali

  • Jika anggota yang ditentukan ada di dalam kunci, mengembalikan peringkat anggota sebagai bilangan bulat.

  • Jika kunci atau anggota di dalam kunci tidak ada, mengembalikan nilai nil.

Contoh

Contoh perintah:

EXZREVRANK testkey b

Contoh hasil:(integer) 1

(integer) 1

EXZCOUNT

Kategori

Deskripsi

Sintaksis

EXZCOUNT key min max

Kompleksitas waktu

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

Catatan

Karena rentang kueri diperoleh berdasarkan peringkat elemen, jumlah pekerjaan yang terlibat dalam operasi ini tidak proporsional dengan ukuran rentang kueri.

Deskripsi perintah

Mengembalikan jumlah elemen dalam TairZset pada kunci tertentu dengan skor antara min dan max.

Opsi

min dan max mewakili skor minimum dan maksimum. Jika elemen dalam kunci menggunakan skor multi-dimensi, gunakan simbol pagar (#) untuk memisahkan skor untuk setiap dimensi.

Catatan
  • Jika Anda tidak yakin tentang skor tertinggi dan terendah dari elemen dalam kunci dan ingin menanyakan elemen dengan skor lebih besar dari atau sama dengan, atau kurang dari atau sama dengan nilai tertentu, atur min dan max ke negatif tak terhingga dan positif tak terhingga, masing-masing.

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

Nilai pengembalian

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

Contoh

Contoh perintah:

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

Contoh pengembalian:

(integer) 1

EXZLEXCOUNT

Kategori

Deskripsi

Sintaksis

EXZLEXCOUNT key min max

Kompleksitas waktu

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

Catatan

Karena rentang kueri diperoleh berdasarkan peringkat elemen, jumlah pekerjaan yang terlibat dalam operasi ini tidak proporsional dengan ukuran rentang kueri.

Deskripsi perintah

Ketika semua elemen dalam TairZset memiliki skor yang sama, perintah ini mengembalikan jumlah elemen pada kunci tertentu yang berada di antara rentang leksikografis min dan max. Ini memastikan bahwa elemen diurutkan berdasarkan urutan leksikografis.

Catatan
  • Jika elemen dalam kunci memiliki skor yang berbeda, elemen yang dikembalikan tidak terdefinisi.

  • Perintah menggunakan fungsi memcmp() C untuk membandingkan byte dalam dua string elemen satu per satu. Elemen diurutkan dari rendah ke tinggi berdasarkan hasil perbandingan. Jika dua string memiliki substring yang sama, string yang lebih panjang dianggap memiliki nilai yang lebih tinggi.

Opsi

min dan max mewakili nama anggota minimum dan maksimum sebagai string. Anda harus menentukan rentang karakter. Contohnya:

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

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

Nilai pengembalian

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

Contoh

Contoh perintah:

EXZLEXCOUNT zzz [a [b

Contoh pengembalian:

(integer) 2

EXZRANKBYSCORE

Kategori

Deskripsi

Sintaksis

EXZRANKBYSCORE key score

Kompleksitas waktu

O(log(N))

Deskripsi perintah

Menghitung peringkat dari skor tertentu di TairZset pada kunci yang ditentukan, dengan skor diurutkan dari rendah ke tinggi. Peringkat (atau indeks) dimulai dari 0, sehingga anggota dengan skor terendah memiliki peringkat 0.

Catatan

Jika skor yang ditentukan tidak ada, perintah mengembalikan peringkat prospektif dari skor tersebut di TairZset. Jika skor yang ditentukan sudah ada, Tair secara default menempatkan skor yang ditentukan sebelum skor yang sudah ada.

Opsi

Tidak ada

Nilai kembali

Mengembalikan peringkat dari skor yang ditentukan di kunci.

Contoh

Contoh perintah:

EXZRANKBYSCORE testkey 2#0#2 

Contoh hasil:

(integer) 1

EXZREVRANKBYSCORE

Kategori

Deskripsi

Sintaksis

EXZREVRANKBYSCORE key score

Kompleksitas waktu

O(log(N))

Deskripsi perintah

Menghitung peringkat dari skor tertentu dalam TairZset pada kunci yang ditentukan, dengan skor diurutkan dari tinggi ke rendah. Peringkat (atau indeks) dimulai dari 0, sehingga anggota dengan skor tertinggi memiliki peringkat 0.

Catatan

Jika skor yang ditentukan tidak ada, perintah mengembalikan peringkat prospektif dari skor tersebut dalam TairZset. Jika skor yang ditentukan sudah ada, Tair secara default menempatkan skor yang ditentukan setelah skor yang sudah ada.

Opsi

Tidak ada

Nilai kembali

Mengembalikan peringkat dari skor yang ditentukan dalam kunci.

Contoh

Contoh perintah:

EXZREVRANKBYSCORE testkey 2#0#2 

Contoh hasil:

(integer) 1