TairString (exString) adalah string yang mencakup nomor versi. Topik ini menjelaskan perintah-perintah yang didukung oleh struktur data TairString.
Ikhtisar
String Redis asli menggunakan struktur pasangan kunci-nilai. TairStrings mencakup kunci, nilai, dan nomor versi untuk mendukung skenario seperti kunci optimis. Pada string Redis asli, perintah INCRBY dan INCRBYFLOAT digunakan untuk menambah atau mengurangi nilai string. Pada TairStrings, Anda dapat membatasi rentang output yang dikembalikan oleh perintah-perintah ini. Jika output berada di luar rentang yang ditentukan, pesan kesalahan akan dikembalikan.
Fitur Utama
TairString mencakup nomor versi.
TairStrings memungkinkan Anda membatasi rentang output perintah INCRBY dan INCRBYFLOAT saat menjalankan perintah-perintah ini untuk menambah nilai.
Modul ini bersifat open-source. Untuk informasi lebih lanjut, lihat GitHub.
Versi minor terbaru menyediakan lebih banyak fitur dan stabilitas yang lebih tinggi. Kami merekomendasikan agar Anda 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 merekomendasikan agar Anda memperbarui node proxy di instans ke versi minor terbaru untuk memastikan bahwa semua perintah dapat dijalankan sesuai harapan.
Peringatan
Data TairString yang ingin Anda kelola disimpan pada instans Tair.
Catatan
Anda dapat mengelola string Redis asli dan TairStrings pada instans Tair secara bersamaan. Namun, string Redis asli tidak mendukung perintah yang dijelaskan dalam topik ini.
EXSET key value [EX|PX|EXAT|PXAT time] [NX|XX] [VER|ABS version] [KEEPTTL]
Membuat kunci TairString jika kunci tersebut tidak ada dan menulis nilai ke kunci tersebut. Jika kunci sudah ada, perintah ini menimpa nilai kunci tersebut.
Memperbarui nilai dari kunci TairString tertentu jika nomor versi saat ini dari kunci cocok dengan yang ditentukan. Jika nomor-nomor tersebut tidak cocok, perintah mengembalikan nilai asli dan nomor versi dari kunci.
Daftar berikut menggambarkan konvensi untuk sintaksis perintah yang digunakan dalam topik ini:
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 (|) saling eksklusif. Hanya satu dari parameter tersebut yang dapat ditentukan.
...: menunjukkan bahwa parameter sebelum simbol ini dapat ditentukan berulang kali.
EXSET
Item
Deskripsi
Sintaksis
EXSET key value [EX|PX|EXAT|PXAT time] [NX|XX] [VER|ABS version] [KEEPTTL]
Kompleksitas waktu
O(1)
Deskripsi perintah
Membuat kunci TairString jika kunci tersebut tidak ada dan menulis nilai ke kunci tersebut. Jika kunci sudah ada, perintah ini menimpa nilai kunci tersebut.
Parameter
key: kunci yang ingin Anda kelola dengan menjalankan perintah ini.
value: nilai yang ingin Anda tulis ke kunci.
EX: waktu kedaluwarsa relatif dari kunci. Unit: detik. Nilai 0 menunjukkan bahwa kunci langsung kedaluwarsa. Jika parameter ini tidak ditentukan, kunci tidak kedaluwarsa.
EXAT: waktu kedaluwarsa absolut dari kunci. Unit: detik. Nilai 0 menunjukkan bahwa kunci langsung kedaluwarsa. Jika parameter ini tidak ditentukan, kunci tidak kedaluwarsa.
PX: waktu kedaluwarsa relatif dari kunci. Unit: milidetik. Nilai 0 menunjukkan bahwa kunci langsung kedaluwarsa. Jika parameter ini tidak ditentukan, kunci tidak kedaluwarsa.
PXAT: waktu kedaluwarsa absolut dari kunci. Unit: milidetik. Nilai 0 menunjukkan bahwa kunci langsung kedaluwarsa. Jika parameter ini tidak ditentukan, kunci tidak kedaluwarsa.
NX: menentukan bahwa nilai hanya ditulis ke kunci jika kunci tersebut tidak ada.
XX: menentukan bahwa nilai hanya ditulis ke kunci jika kunci tersebut ada.
VER: nomor versi dari kunci.
Jika kunci ada, nomor versi yang ditentukan oleh parameter ini dicocokkan dengan nomor versi saat ini.
Jika nomor versi cocok, nilai ditulis ke kunci dan nomor versi bertambah 1.
Jika nomor versi tidak cocok, pesan kesalahan dikembalikan.
Jika kunci tidak ada atau jika nomor versi saat ini dari kunci adalah 0, nomor versi yang ditentukan tidak berlaku. Dalam hal ini, nilai ditulis ke kunci dan nomor versi diatur ke 1.
ABS: nomor versi absolut dari kunci. Setelah parameter ini ditentukan, nilai ditulis ke kunci tanpa memandang nomor versi saat ini dari kunci. Kemudian, nomor versi ditimpa dengan nilai ABS.
KEEPTTL: mewarisi sisa waktu hidup (TTL) dari kunci. Anda tidak dapat menyetel parameter ini bersama dengan EX, PX, EXAT, atau PXAT.
Catatan
Jika Anda tidak menyetel parameter terkait waktu kedaluwarsa kunci, seperti KEEPTTL, EX, atau PX, kunci tidak kedaluwarsa.
Output
Jika operasi berhasil, OK dikembalikan.
Jika parameter XX ditentukan dan kunci tidak ada, nil dikembalikan.
Jika parameter NX ditentukan dan kunci sudah ada, nil dikembalikan.
Selain itu, pesan kesalahan dikembalikan.
Contoh
Perintah contoh:
EXSET foo bar EX 10 NX ABS 100
Output contoh:
OK
EXGET
Item
Deskripsi
Sintaksis
EXGET key
Kompleksitas waktu
O(1)
Deskripsi perintah
Mengambil nilai dan nomor versi dari kunci TairString.
Parameter
key: kunci yang ingin Anda kelola dengan menjalankan perintah ini.
Output
Jika operasi berhasil, nilai dan nomor versi dari kunci dikembalikan.
Selain itu, pesan kesalahan dikembalikan.
Contoh
Perintah contoh:
EXGET foo
Output contoh:
1) "bar"
2) (integer) 1
EXSETVER
Item
Deskripsi
Sintaksis
EXSETVER key version
Kompleksitas waktu
O(1)
Deskripsi perintah
Menetapkan nomor versi dari kunci TairString.
Parameter
key: kunci yang ingin Anda kelola dengan menjalankan perintah ini.
Menambah atau mengurangi nilai dari kunci TairString. Nilai parameter num harus bertipe LONG.
Parameter
key: kunci yang ingin Anda kelola dengan menjalankan perintah ini.
num: nilai yang digunakan untuk menambah atau mengurangi kunci. Nilai ini harus berupa bilangan bulat.
EX: waktu kedaluwarsa relatif dari kunci. Unit: detik. Nilai 0 menunjukkan bahwa kunci langsung kedaluwarsa. Jika parameter ini tidak ditentukan, kunci tidak kedaluwarsa.
EXAT: waktu kedaluwarsa absolut dari kunci. Unit: detik. Nilai 0 menunjukkan bahwa kunci langsung kedaluwarsa. Jika parameter ini tidak ditentukan, kunci tidak kedaluwarsa.
PX: waktu kedaluwarsa relatif dari kunci. Unit: milidetik. Nilai 0 menunjukkan bahwa kunci langsung kedaluwarsa. Jika parameter ini tidak ditentukan, kunci tidak kedaluwarsa.
PXAT: waktu kedaluwarsa absolut dari kunci. Unit: milidetik. Nilai 0 menunjukkan bahwa kunci langsung kedaluwarsa. Jika parameter ini tidak ditentukan, kunci tidak kedaluwarsa.
NX: menentukan bahwa nilai hanya ditulis ke kunci jika kunci tersebut tidak ada.
XX: menentukan bahwa nilai hanya ditulis ke kunci jika kunci tersebut ada.
VER: nomor versi dari kunci.
Jika kunci ada, nomor versi yang ditentukan oleh parameter ini dicocokkan dengan nomor versi saat ini.
Jika nomor versi cocok, nilai kunci bertambah sebesar nilai num dan nomor versi bertambah 1.
Jika nomor versi tidak cocok, pesan kesalahan dikembalikan.
Jika kunci tidak ada atau jika nomor versi saat ini dari kunci adalah 0, nomor versi yang ditentukan tidak berlaku. Dalam hal ini, nilai bertambah sebesar nilai num dan nomor versi diatur ke 1.
ABS: nomor versi absolut dari kunci. Setelah parameter ini ditentukan, nilai ditulis ke kunci tanpa memandang nomor versi saat ini dari kunci. Kemudian, nomor versi ditimpa dengan nilai ABS.
MIN: nilai minimum dari kunci.
MAX: nilai maksimum dari kunci.
KEEPTTL: mewarisi sisa TTL dari kunci. Anda tidak dapat menyetel parameter ini bersama dengan EX, PX, EXAT, atau PXAT.
Catatan
Jika Anda tidak menyetel parameter terkait waktu kedaluwarsa kunci, seperti KEEPTTL, EX, atau PX, kunci tidak kedaluwarsa.
Output
Jika operasi berhasil, nilai terbaru dari kunci dikembalikan.
Jika parameter MAX atau MIN ditentukan dan nilai terbaru dari kunci berada di luar rentang nilai ini, pesan kesalahan "(error) ERR increment or decrement would overflow" dikembalikan.
Menambah atau mengurangi nilai dari kunci TairString. Nilai parameter num harus bertipe DOUBLE.
Parameter
key: kunci yang ingin Anda kelola dengan menjalankan perintah ini.
num: nilai yang digunakan untuk menambah atau mengurangi kunci. Nilai ini harus berupa bilangan titik mengambang.
EX: waktu kedaluwarsa relatif dari kunci. Unit: detik. Nilai 0 menunjukkan bahwa kunci langsung kedaluwarsa. Jika parameter ini tidak ditentukan, kunci tidak kedaluwarsa.
EXAT: waktu kedaluwarsa absolut dari kunci. Unit: detik. Nilai 0 menunjukkan bahwa kunci langsung kedaluwarsa. Jika parameter ini tidak ditentukan, kunci tidak kedaluwarsa.
PX: waktu kedaluwarsa relatif dari kunci. Unit: milidetik. Nilai 0 menunjukkan bahwa kunci langsung kedaluwarsa. Jika parameter ini tidak ditentukan, kunci tidak kedaluwarsa.
PXAT: waktu kedaluwarsa absolut dari kunci. Unit: milidetik. Nilai 0 menunjukkan bahwa kunci langsung kedaluwarsa. Jika parameter ini tidak ditentukan, kunci tidak kedaluwarsa.
NX: menentukan bahwa nilai hanya ditulis ke kunci jika kunci tersebut tidak ada.
XX: menentukan bahwa nilai hanya ditulis ke kunci jika kunci tersebut ada.
VER: nomor versi dari kunci.
Jika kunci ada, nomor versi yang ditentukan oleh parameter ini dicocokkan dengan nomor versi saat ini.
Jika nomor versi cocok, nilai kunci bertambah sebesar nilai num dan nomor versi bertambah 1.
Jika nomor versi tidak cocok, pesan kesalahan dikembalikan.
Jika kunci tidak ada atau jika nomor versi saat ini dari kunci adalah 0, nomor versi yang ditentukan tidak berlaku. Dalam hal ini, nilai bertambah sebesar nilai num dan nomor versi diatur ke 1.
ABS: nomor versi absolut dari kunci. Setelah parameter ini ditentukan, nilai ditulis ke kunci tanpa memandang nomor versi saat ini dari kunci. Kemudian, nomor versi ditimpa dengan nilai ABS.
MIN: nilai minimum dari kunci.
MAX: nilai maksimum dari kunci.
KEEPTTL: mewarisi sisa TTL dari kunci. Anda tidak dapat menyetel parameter ini bersama dengan EX, PX, EXAT, atau PXAT.
Catatan
Jika Anda tidak menyetel parameter terkait waktu kedaluwarsa kunci, seperti KEEPTTL, EX, atau PX, kunci tidak kedaluwarsa.
Output
Jika operasi berhasil, nilai terbaru dari kunci dikembalikan.
Jika parameter MAX atau MIN ditentukan dan nilai terbaru dari kunci berada di luar rentang nilai ini, pesan kesalahan "(error) ERR increment or decrement would overflow" dikembalikan.
Selain itu, pesan kesalahan dikembalikan.
Contoh
Perintah EXSET foo 1 dijalankan terlebih dahulu.
Perintah contoh:
EXINCRBYFLOAT foo 10.123
Output contoh:
(integer) 11.123
EXCAS
Item
Deskripsi
Sintaksis
EXCAS key newvalue version
Kompleksitas waktu
O(1)
Deskripsi perintah
Memperbarui nilai dari kunci TairString tertentu jika nomor versi saat ini dari kunci cocok dengan yang ditentukan. Jika nomor-nomor tersebut tidak cocok, perintah mengembalikan nilai asli dan nomor versi dari kunci.
Parameter
key: kunci yang ingin Anda kelola dengan menjalankan perintah ini.
newvalue: nilai baru yang ingin Anda gunakan untuk menimpa nilai saat ini dari kunci jika nomor versi saat ini dari kunci cocok dengan nomor versi yang ditentukan.
version: nomor versi yang ingin Anda bandingkan dengan nomor versi saat ini dari kunci.
Output
Jika operasi berhasil, pesan "["OK", "",latest version]" dikembalikan. Karakter "" di tengah pesan menunjukkan string kosong yang tidak memiliki makna.
Jika operasi gagal, pesan kesalahan berikut dikembalikan: ["ERR update version is stale", value, version]. value menunjukkan nilai saat ini dari kunci. version menunjukkan nomor versi saat ini dari kunci.
Jika kunci tidak ada, nilai -1 dikembalikan.
Selain itu, pesan kesalahan dikembalikan.
Contoh
Perintah EXSET foo bar dijalankan terlebih dahulu.
Perintah contoh:
EXCAS foo bzz 1
Output contoh:
1) OK
2)
3) (integer) 2
EXCAD
Item
Deskripsi
Sintaksis
EXCAD key version
Kompleksitas waktu
O(1)
Deskripsi perintah
Menghapus kunci TairString ketika nomor versi saat ini dari kunci cocok dengan yang ditentukan.
Parameter
key: kunci yang ingin Anda kelola dengan menjalankan perintah ini.
version: nomor versi yang ingin Anda bandingkan dengan nomor versi saat ini dari kunci.
Output
Jika operasi berhasil, nilai 1 dikembalikan.
Jika operasi gagal, nilai 0 dikembalikan.
Jika kunci tidak ada, nilai -1 dikembalikan.
Selain itu, pesan kesalahan dikembalikan.
Contoh
Perintah EXSET foo bar dijalankan terlebih dahulu.