TairHash (juga dikenal sebagai exHash) adalah struktur data hash yang ditingkatkan, memungkinkan Anda menentukan waktu kedaluwarsa dan nomor versi untuk bidang. TairHash fleksibel dan menyederhanakan pengembangan bisnis dalam berbagai skenario.
Pengenalan TairHash
TairHash dan hash Redis asli mendukung berbagai perintah serta memberikan performa tinggi dalam pemrosesan data. Namun, hash Redis asli hanya memungkinkan penentuan waktu kedaluwarsa untuk kunci. TairHash memungkinkan Anda menentukan waktu kedaluwarsa baik untuk kunci maupun bidang, serta menetapkan versi untuk bidang. Fitur-fitur ini menyederhanakan pengembangan bisnis dalam sebagian besar skenario. TairHash menggunakan algoritma kedaluwarsa aktif untuk memeriksa waktu kedaluwarsa bidang dan menghapus bidang yang telah kedaluwarsa tanpa meningkatkan waktu tanggapan database.
Fitur Utama
TairHash memungkinkan Anda menentukan waktu kedaluwarsa dan nomor versi untuk bidang.
TairHash mendukung kebijakan kedaluwarsa yang efisien dan fleksibel untuk bidang, baik aktif maupun pasif.
Sintaksisnya mirip dengan tipe data Hash Redis asli.
Modul ini bersifat open-source. Untuk informasi lebih lanjut, lihat TairHash.
Persiapan
Instans termasuk dalam salah satu tipe seri Tair berikut:
Instans dengan Optimasi Memori Persisten dengan versi minor 1.2.6 atau yang lebih baru.
Versi minor terbaru menyediakan lebih banyak fitur dan stabilitas yang lebih tinggi. Kami menyarankan Anda untuk memperbarui instans Anda ke versi minor terbaru. Untuk informasi lebih lanjut, lihat Perbarui Versi Minor. Jika instans Anda adalah kluster atau instans dengan pemisahan baca/tulis, kami menyarankan Anda untuk memperbarui node proxy ke versi minor terbaru agar semua perintah berjalan sesuai harapan.
Langkah-langkah Pencegahan
Data TairHash yang ingin Anda kelola disimpan di Tair Instans.
Daftar Perintah
Tabel 1. Perintah TairHash
Perintah | Sintaksis | Deskripsi |
| Menambahkan bidang ke kunci TairHash. Jika kunci tidak ada, kunci akan dibuat. Jika bidang sudah ada, perintah ini menimpa nilai saat ini dari bidang tersebut. | |
| Mengambil nilai dari bidang dalam kunci TairHash. Jika kunci atau bidang tidak ada, nil dikembalikan. | |
| Menambahkan beberapa bidang ke kunci TairHash. Jika kunci tidak ada, kunci akan dibuat. Jika bidang-bidang ini sudah ada di kunci, perintah ini menimpa nilai-nilai dari bidang-bidang tersebut. | |
| Menentukan waktu kedaluwarsa absolut dari sebuah bidang dalam kunci TairHash. Satuan: milidetik. | |
| Menentukan waktu kedaluwarsa relatif untuk sebuah bidang dalam kunci TairHash. Satuan: milidetik. | |
| Menentukan waktu kedaluwarsa absolut dari sebuah bidang dalam kunci TairHash. Satuan: detik. | |
| Menentukan waktu kedaluwarsa relatif dari sebuah bidang dalam kunci TairHash. Satuan: detik. | |
| Mengecek sisa waktu kedaluwarsa dari sebuah bidang dalam kunci TairHash. Satuan: milidetik. | |
| Mengecek TTL dari sebuah bidang dalam kunci TairHash. Satuan: detik. | |
| Mengecek nomor versi saat ini dari sebuah bidang dalam kunci TairHash. | |
| Menentukan nomor versi dari sebuah bidang dalam kunci TairHash. | |
| Menambahkan nilai dari sebuah bidang dalam kunci TairHash sebesar nilai num. Nilai num harus berupa bilangan bulat. Jika kunci tidak ada, kunci akan dibuat. Jika bidang tidak ada, perintah ini menambahkan bidang dan mengatur nilai bidang menjadi 0 sebelum menambahkan nilai bidang. Catatan Untuk menambahkan bidang yang tidak kedaluwarsa, Anda dapat menjalankan perintah ini tanpa menentukan waktu kedaluwarsa. | |
| Menambahkan nilai dari sebuah bidang dalam kunci TairHash sebesar nilai num. Nilai num harus berupa bilangan titik mengambang. Jika kunci tidak ada, kunci akan dibuat. Jika bidang tidak ada, perintah ini menambahkan bidang dan mengatur nilai bidang menjadi 0 sebelum membuat kunci. Catatan Untuk menambahkan bidang yang tidak kedaluwarsa, Anda dapat menjalankan perintah ini tanpa menentukan waktu kedaluwarsa. | |
| Mengambil nilai dan nomor versi dari sebuah bidang dalam kunci TairHash. Jika kunci atau bidang tidak ada, nil dikembalikan. | |
| Mengambil beberapa nilai bidang dari kunci TairHash dalam setiap kueri. Jika kunci tidak ada atau jika bidang-bidang tidak ada, nil dikembalikan. | |
| Mengambil nilai dan nomor versi dari beberapa bidang dalam kunci TairHash dalam setiap kueri. | |
| Mengambil jumlah bidang dalam kunci TairHash. Output mungkin mencakup jumlah bidang yang telah kedaluwarsa tetapi belum dihapus karena perintah ini tidak memicu penghapusan pasif atau menyaring bidang yang telah kedaluwarsa. Jika Anda ingin mengambil hanya jumlah bidang yang belum kedaluwarsa, Anda dapat menyetel parameter NOEXP dalam perintah Anda. | |
| Memeriksa apakah sebuah bidang ada dalam kunci TairHash. | |
| Mengambil panjang nilai bidang dari kunci TairHash. | |
| Mengambil semua bidang dari kunci TairHash. | |
| Mengambil semua nilai bidang dari kunci TairHash. | |
| Mengambil semua bidang dan nilai-nilainya dari kunci TairHash. | |
| Memindai kunci TairHash. Catatan Perintah ini hanya didukung untuk instans berbasis DRAM. | |
| Memindai kunci TairHash. Catatan Perintah ini hanya didukung untuk instans yang dioptimalkan untuk memori persisten. | |
| Menghapus bidang dari kunci TairHash. Jika kunci atau bidang tidak ada, nilai 0 dikembalikan. Jika bidang dihapus, nilai 1 dikembalikan. | |
| Menghapus satu atau lebih kunci TairHash. |
Daftar berikut menjelaskan 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 terlampir bersifat opsional. Parameter yang tidak dilingkupi tanda kurung harus ditentukan.A|B: Menunjukkan bahwa parameter yang dipisahkan oleh garis vertikal (|) saling eksklusif. Hanya satu dari parameter tersebut yang dapat ditentukan....: Menunjukkan bahwa parameter sebelum simbol ini dapat ditentukan secara berulang.
EXHSET
Item | Deskripsi |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Menambahkan bidang ke kunci TairHash. Jika kunci tidak ada, kunci akan dibuat. Jika bidang sudah ada, perintah ini menimpa nilai saat ini dari bidang tersebut. Catatan
|
Parameter |
|
Keluaran |
|
Contoh | Perintah contoh: Keluaran contoh: |
EXHGET
Item | Description |
Sintaks |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Mengambil nilai dari sebuah bidang dalam kunci TairHash. Jika kunci atau bidang tidak ada, nil akan dikembalikan. |
Parameter |
|
Keluaran |
|
Contoh | Jalankan perintah Perintah contoh: Keluaran contoh: |
EXHMSET
Item | Description |
Sintaksis |
|
Kompleksitas waktu | O(N) |
Deskripsi perintah | Menambahkan beberapa bidang ke kunci TairHash. Jika kunci tidak ada, kunci akan dibuat. Jika bidang-bidang ini sudah ada di dalam kunci, perintah ini akan menimpa nilai-nilai dari bidang tersebut. Catatan Setelah Anda membuat kunci, Anda dapat menjalankan perintah EXHPEXPIREAT, EXHPEXPIRE, EXHEXPIREAT, atau EXHEXPIRE untuk menentukan waktu kedaluwarsa bagi bidang-bidang yang ditambahkan ke kunci. Anda juga dapat menjalankan perintah EXPIRE atau EXPIREAT untuk menentukan waktu kedaluwarsa bagi kunci. |
Parameter |
|
Keluaran |
|
Contoh | Perintah contoh: Keluaran contoh: |
EXHPEXPIREAT
Item | Description |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Menentukan waktu kedaluwarsa absolut dari sebuah bidang dalam kunci TairHash. Satuan: milidetik. |
Parameter |
|
Keluaran |
|
Contoh | Perintah contoh: Keluaran contoh: |
EXHPEXPIRE
Item | Description |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Menentukan waktu kedaluwarsa relatif untuk sebuah bidang dalam kunci TairHash. Satuan: milidetik. |
Opsi |
|
Keluaran |
|
Contoh | Perintah contoh: Keluaran contoh: |
EXHEXPIREAT
Item | Description |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Menentukan waktu kedaluwarsa absolut dari sebuah bidang dalam kunci TairHash. Satuan: detik. |
Opsi |
|
Keluaran |
|
Contoh | Perintah contoh: Keluaran contoh: |
EXHEXPIRE
Kategori | Deskripsi |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Menentukan waktu kedaluwarsa relatif dari sebuah bidang dalam kunci TairHash. Satuan: detik. |
Opsi |
|
Keluaran |
|
Contoh | Perintah contoh: Keluaran contoh: |
EXHPTTL
Item | Description |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Memeriksa sisa waktu kedaluwarsa dari sebuah bidang dalam kunci TairHash. Satuan: milidetik. |
Parameter |
|
Keluaran |
|
Contoh | Jalankan perintah Perintah contoh: Keluaran contoh: |
EXHTTL
Item | Description |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Memeriksa TTL dari sebuah bidang dalam kunci TairHash. Satuan: detik. |
Parameter |
|
Keluaran |
|
Contoh | Jalankan perintah Perintah contoh: Keluaran contoh: |
EXHVER
Item | Description |
Sintaks |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Mengecek nomor versi saat ini dari sebuah bidang dalam kunci TairHash. |
Opsi |
|
Keluaran |
|
Contoh | Perintah contoh: Keluaran contoh: |
EXHSETVER
Item | Description |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Menentukan nomor versi dari sebuah bidang dalam kunci TairHash. |
Parameter |
|
Keluaran |
|
Contoh | Perintah contoh: Keluaran contoh: |
EXHINCRBY
Item | Description |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Meningkatkan nilai dari sebuah bidang dalam kunci TairHash sebesar nilai num. Nilai num harus berupa bilangan bulat. Jika kunci tidak ada, kunci akan dibuat. Jika bidang tidak ada, perintah ini menambahkan bidang dan mengatur nilai bidang menjadi 0 sebelum meningkatkan nilainya. Catatan Untuk menambahkan bidang yang tidak kedaluwarsa, Anda dapat menjalankan perintah ini untuk menambahkan bidang tanpa menentukan waktu kedaluwarsa. |
Parameter |
|
Output |
|
Contoh | Jalankan perintah Perintah contoh: Output contoh: |
EXHINCRBYFLOAT
Item | Description |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Menambahkan nilai suatu bidang dengan nilai num pada kunci TairHash. Nilai num harus berupa bilangan titik mengambang. Jika kunci tidak ada, kunci akan dibuat. Jika bidang tidak ada, perintah ini menambahkan bidang dan menetapkan nilai bidang ke 0 sebelum perintah membuat kunci. Catatan Untuk menambahkan bidang yang tidak kedaluwarsa, Anda dapat menjalankan perintah ini untuk menambahkan bidang tanpa menentukan waktu kedaluwarsa. |
Parameter |
|
Keluaran |
|
Contoh | Jalankan perintah Perintah contoh: Keluaran contoh: |
EXHGETWITHVER
Item | Description |
Sintaks |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Mengambil nilai dan nomor versi dari sebuah bidang dalam kunci TairHash. Jika kunci atau bidang tidak ada, nil akan dikembalikan. |
Opsi |
|
Keluaran |
|
Contoh | Perintah contoh: Keluaran contoh: |
EXHMGET
Item | Description |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Mengambil beberapa nilai bidang dari kunci TairHash dalam setiap kueri. Jika kunci tidak ada atau jika bidang tidak ada, nil dikembalikan. |
Parameter |
|
Keluaran |
|
Contoh | Jalankan perintah Perintah contoh: Keluaran contoh: |
EXHMGETWITHVER
Item | Description |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Mengambil nilai dan nomor versi dari beberapa bidang dari kunci TairHash dalam setiap kueri. |
Parameter |
|
Keluaran |
|
Contoh | Jalankan perintah Perintah contoh: Keluaran contoh: |
EXHLEN
Item | Description |
Sintaksis |
|
Kompleksitas waktu | Kompleksitas waktu adalah O(1) jika parameter NOEXP tidak ditentukan dan O(N) jika parameter NOEXP ditentukan. |
Deskripsi perintah | Mengambil jumlah bidang dalam kunci TairHash. Keluaran mungkin mencakup jumlah bidang yang sudah kedaluwarsa tetapi belum dihapus karena perintah ini tidak memicu penghapusan pasif atau menyaring bidang yang kedaluwarsa. Jika Anda ingin mengambil hanya jumlah bidang yang belum kedaluwarsa, Anda dapat menetapkan parameter NOEXP dalam perintah Anda. |
Opsi |
|
Keluaran |
|
Contoh | Perintah contoh: Keluaran contoh: |
EXHEXISTS
Item | Description |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Memeriksa apakah sebuah bidang ada dalam kunci TairHash. |
Parameter |
|
Keluaran |
|
Contoh | Perintah contoh: Keluaran contoh: |
EXHSTRLEN
Item | Description |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Mengambil panjang nilai bidang dari kunci TairHash. |
Opsi |
|
Keluaran |
|
Contoh | Perintah contoh: Keluaran contoh: |
EXHKEYS
Item | Description |
Sintaksis |
|
Kompleksitas waktu | O(N) |
Deskripsi perintah | Mengambil semua bidang dari sebuah kunci TairHash. |
Parameter |
|
Output |
|
Contoh | Jalankan perintah Perintah contoh: Output contoh: |
EXHVALS
Item | Description |
Sintaksis |
|
Kompleksitas waktu | O(N) |
Deskripsi perintah | Mengambil semua nilai bidang dari kunci TairHash. |
opsi |
|
Output |
|
Contoh | Jalankan perintah Perintah contoh: Output contoh: |
EXHGETALL
Kategori | Deskripsi |
Sintaksis |
|
Kompleksitas waktu | O(N) |
Deskripsi perintah | Mengambil semua bidang dan nilai-nilainya dari kunci TairHash. |
Opsi |
|
Output |
|
Contoh | Jalankan perintah Perintah contoh: Output contoh: |
EXHSCAN
Item | Description |
Sintaksis |
|
Kompleksitas waktu | Kompleksitas waktu adalah O(1) untuk setiap pemanggilan dan O(N) untuk iterasi lengkap. |
Deskripsi perintah | Memindai kunci TairHash. Catatan Perintah ini hanya didukung untuk instans berbasis DRAM. |
Parameter |
|
Keluaran |
|
Contoh | Jalankan perintah Contoh perintah: Contoh keluaran: |
EXHSCANUNORDER
Item | Description |
Sintaksis |
|
Kompleksitas waktu | Kompleksitas waktu adalah O(1) untuk setiap pemanggilan dan O(N) untuk iterasi lengkap. |
Deskripsi perintah | Memindai kunci TairHash. Catatan Perintah ini hanya didukung untuk instans yang dioptimalkan untuk memori persisten. |
Parameter |
|
Keluaran |
|
Contoh | Jalankan perintah Contoh perintah: Contoh keluaran: |
EXHDEL
Kategori | Deskripsi |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Menghapus bidang dari kunci TairHash. Jika kunci atau bidang tidak ada, nilai 0 akan dikembalikan. Jika bidang dihapus, nilai 1 akan dikembalikan. |
Parameter |
|
Keluaran |
|
Contoh | Perintah contoh: Keluaran contoh: |
FAQ
Q: Mengapa exHash mengonsumsi lebih banyak memori dibandingkan struktur Hash standar dari Redis Edisi Open-Source ketika data yang sama ditulis?
A: Hal ini karena exHash memungkinkan Anda menentukan waktu kedaluwarsa dan versi untuk bidang individu. Akibatnya, metadata tambahan harus disimpan dalam struktur data, yang mengakibatkan penggunaan memori yang lebih tinggi dibandingkan dengan struktur Hash standar dari Redis Edisi Open-Source.