TairHash (exHash) adalah struktur data hash yang memungkinkan Anda menetapkan waktu kedaluwarsa dan versi untuk setiap field. Kemampuan ini meningkatkan fleksibilitas struktur data hash dan menyederhanakan pengembangan dalam berbagai skenario.
Pengenalan TairHash
TairHash menyediakan antarmuka data yang kaya dan performa tinggi, mirip dengan Redis Hash. Namun, berbeda dengan Redis Hash yang hanya mendukung penyetelan waktu kedaluwarsa di level kunci, TairHash memungkinkan penyetelan waktu kedaluwarsa dan versi secara individual untuk setiap field. Fitur ini secara signifikan meningkatkan fleksibilitas struktur data hash dan menyederhanakan pengembangan. TairHash menggunakan algoritma Active Expire yang efisien untuk memeriksa dan menghapus field kedaluwarsa tanpa berdampak signifikan terhadap waktu respons.
Fitur utama
Menetapkan waktu kedaluwarsa dan versi untuk setiap field.
Mendukung kebijakan kedaluwarsa aktif dan pasif yang efisien serta fleksibel untuk field.
Menggunakan sintaksis yang mirip dengan tipe data Redis Hash asli.
Modul ini bersifat open source. Untuk informasi lebih lanjut, lihat TairHash.
Prasyarat
Instans adalah Tair.
Optimasi memori persisten (versi minor 1.2.6 atau lebih baru)
Versi minor terbaru menyediakan fitur tambahan dan peningkatan stabilitas. Perbarui instans Anda ke versi minor terbaru. Untuk informasi lebih lanjut, lihat Pembaruan versi minor. Jika instans Anda menggunakan arsitektur kluster atau arsitektur Pemisahan baca/tulis, perbarui node proxy ke versi minor terbaru. Jika tidak, beberapa perintah mungkin tidak dikenali.
Perhatian
Perintah-perintah ini beroperasi pada data TairHash dalam instans Tair.
Perintah
Tabel 1. Perintah TairHash
Perintah | Sintaksis | Deskripsi |
| Menambahkan field ke kunci TairHash yang ditentukan. Jika kunci tidak ada, kunci akan dibuat secara otomatis. Jika field sudah ada, nilainya akan ditimpa. | |
| Mengambil nilai field dalam kunci TairHash yang ditentukan. Mengembalikan nil jika kunci atau field tidak ada. | |
| Menambahkan beberapa field ke kunci TairHash yang ditentukan. Jika kunci tidak ada, kunci akan dibuat secara otomatis. Jika field sudah ada, nilainya akan ditimpa. | |
| Menetapkan waktu kedaluwarsa absolut untuk field dalam kunci TairHash yang ditentukan. Waktu akurat hingga milidetik. | |
| Menetapkan waktu kedaluwarsa relatif dalam milidetik untuk field dalam kunci TairHash yang ditentukan. | |
| Menetapkan waktu kedaluwarsa absolut untuk field dalam kunci TairHash yang ditentukan. Waktu akurat hingga detik. | |
| Menetapkan waktu kedaluwarsa relatif dalam detik untuk field dalam kunci TairHash yang ditentukan. | |
| Mengambil sisa TTL field dalam kunci TairHash yang ditentukan. Waktu dalam milidetik. | |
| Mengambil sisa TTL field dalam kunci TairHash yang ditentukan. Waktu dalam detik. | |
| Mengambil nomor versi saat ini dari field dalam kunci TairHash yang ditentukan. | |
| Menetapkan nomor versi field dalam kunci TairHash yang ditentukan. | |
| Menambahkan nilai integer field dalam kunci TairHash yang ditentukan dengan angka tertentu. Jika kunci tidak ada, kunci akan dibuat secara otomatis. Jika field yang ditentukan tidak ada, field tersebut akan dibuat dengan nilai 0 sebelum operasi penambahan. Catatan Setelah Anda menetapkan timeout untuk suatu field, jika Anda menjalankan perintah ini lagi pada field tersebut tanpa menentukan timeout, field tersebut akan diatur agar tidak pernah kedaluwarsa. | |
| Menambahkan nilai bilangan titik mengambang field dalam kunci TairHash yang ditentukan dengan angka tertentu. Jika kunci tidak ada, kunci akan dibuat secara otomatis. Jika field yang ditentukan tidak ada, field tersebut akan dibuat dengan nilai 0 sebelum operasi penambahan. Catatan Setelah Anda menetapkan timeout untuk suatu field, jika Anda menjalankan perintah ini lagi pada field tersebut tanpa menentukan timeout, field tersebut akan diatur agar tidak pernah kedaluwarsa. | |
| Mengambil nilai dan versi field dalam kunci TairHash yang ditentukan. Mengembalikan nil jika kunci atau field tidak ada. | |
| Mengambil nilai beberapa field dalam kunci TairHash yang ditentukan. Mengembalikan nil jika kunci atau field tidak ada. | |
| Mengambil nilai dan versi beberapa field dalam kunci TairHash yang ditentukan. | |
| Mengambil jumlah field dalam kunci TairHash yang ditentukan. Perintah ini tidak memicu eviction pasif atau menyaring field yang telah kedaluwarsa. Oleh karena itu, hasilnya mungkin mencakup field yang telah kedaluwarsa tetapi belum dihapus. Untuk mengembalikan hanya jumlah field yang belum kedaluwarsa, tentukan opsi NOEXP. | |
| Memeriksa apakah field yang ditentukan ada dalam kunci TairHash. | |
| Mengambil panjang nilai field dalam kunci TairHash yang ditentukan. | |
| Mengambil semua field dalam kunci TairHash yang ditentukan. | |
| Mengambil nilai semua field dalam kunci TairHash yang ditentukan. | |
| Mengambil semua field beserta nilainya dalam kunci TairHash yang ditentukan. | |
| Memindai kunci TairHash yang ditentukan. Catatan Perintah ini hanya didukung untuk instans optimasi memori. | |
| Menghapus field dari kunci TairHash yang ditentukan. Mengembalikan 0 jika kunci atau field tidak ada. Mengembalikan 1 jika penghapusan berhasil. | |
| Menghapus satu atau beberapa kunci TairHash menggunakan perintah Redis DEL asli. |
Daftar berikut menjelaskan konvensi sintaksis perintah yang digunakan dalam topik ini:
Kata kunci huruf kapital: menunjukkan kata kunci perintah.Teks miring: menunjukkan variabel.[opsi]: menunjukkan bahwa parameter yang diapit kurung siku bersifat opsional. Parameter yang tidak diapit kurung siku 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.
EXHSET
Kategori | Deskripsi |
Sintaksis |
|
kompleksitas waktu | O(1) |
Deskripsi perintah | Menambahkan field ke kunci TairHash yang ditentukan. Jika kunci tidak ada, kunci akan dibuat secara otomatis. Jika field sudah ada, nilainya akan ditimpa. Catatan
|
Opsi |
|
Nilai kembali |
|
Contoh | Perintah contoh: Nilai kembali contoh: |
EXHGET
Kategori | Deskripsi |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Mengambil nilai field dalam kunci TairHash yang ditentukan. Mengembalikan nil jika kunci atau field tidak ada. |
Opsi |
|
Nilai kembali |
|
Contoh | Jalankan perintah Perintah contoh: Nilai kembali contoh: |
EXHMSET
Kategori | Deskripsi |
Sintaksis |
|
Kompleksitas waktu | O(N) |
Deskripsi perintah | Menambahkan beberapa field ke kunci TairHash yang ditentukan. Jika kunci tidak ada, kunci akan dibuat secara otomatis. Jika field sudah ada, nilainya akan ditimpa. Catatan Setelah membuat kunci, Anda dapat menggunakan perintah EXHPEXPIREAT, EXHPEXPIRE, EXHEXPIREAT, atau EXHEXPIRE untuk menetapkan waktu kedaluwarsa untuk field. Anda juga dapat menggunakan perintah EXPIRE atau EXPIREAT untuk menetapkan waktu kedaluwarsa untuk kunci. |
Opsi |
|
Nilai kembali |
|
Contoh | Perintah contoh: Nilai kembali contoh: |
EXHPEXPIREAT
Kategori | Deskripsi |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Menetapkan waktu kedaluwarsa absolut untuk field dalam kunci TairHash yang ditentukan. Waktu akurat hingga milidetik. |
Opsi |
|
Nilai kembali |
|
Contoh | Perintah contoh: Nilai kembali contoh: |
EXHPEXPIRE
Kategori | Deskripsi |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Menetapkan waktu kedaluwarsa relatif dalam milidetik untuk field dalam kunci TairHash yang ditentukan. |
Opsi |
|
Nilai kembali |
|
Contoh | Perintah contoh: Nilai kembali contoh: |
EXHEXPIREAT
Kategori | Deskripsi |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Menetapkan waktu kedaluwarsa absolut untuk field dalam kunci TairHash yang ditentukan. Waktu akurat hingga detik. |
Opsi |
|
Nilai kembali |
|
Contoh | Perintah contoh: Nilai kembali contoh: |
EXHEXPIRE
Kategori | Deskripsi |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Menetapkan waktu kedaluwarsa relatif dalam detik untuk field dalam kunci TairHash yang ditentukan. |
Opsi |
|
Nilai kembali |
|
Contoh | Perintah contoh: Nilai kembali contoh: |
EXHPTTL
Kategori | Deskripsi |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Mengambil sisa TTL field dalam kunci TairHash yang ditentukan. Waktu dalam milidetik. |
Opsi |
|
Nilai kembali |
|
Contoh | Jalankan perintah Perintah contoh: Nilai kembali contoh: |
EXHTTL
Kategori | Deskripsi |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Mengambil sisa TTL field dalam kunci TairHash yang ditentukan. Waktu dalam detik. |
Opsi |
|
Nilai kembali |
|
Contoh | Jalankan perintah Perintah contoh: Nilai kembali contoh: |
EXHVER
Kategori | Deskripsi |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Mengambil nomor versi saat ini dari field dalam kunci TairHash yang ditentukan. |
Opsi |
|
Nilai kembali |
|
Contoh | Perintah contoh: Nilai kembali contoh: |
EXHSETVER
Kategori | Deskripsi |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Menetapkan nomor versi field dalam kunci TairHash yang ditentukan. |
Opsi |
|
Nilai kembali |
|
Contoh | Perintah contoh: Nilai kembali contoh: |
EXHINCRBY
Kategori | Deskripsi |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Menambahkan nilai integer field dalam kunci TairHash yang ditentukan dengan angka tertentu. Jika kunci tidak ada, kunci akan dibuat secara otomatis. Jika field yang ditentukan tidak ada, field tersebut akan dibuat dengan nilai 0 sebelum operasi penambahan. Catatan Setelah Anda menetapkan timeout untuk suatu field, jika Anda menjalankan perintah ini lagi pada field tersebut tanpa menentukan timeout, field tersebut akan diatur agar tidak pernah kedaluwarsa. |
Opsi |
|
Nilai kembali |
|
Contoh | Jalankan perintah Perintah contoh: Nilai kembali contoh: |
EXHINCRBYFLOAT
Kategori | Deskripsi |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Menambahkan nilai bilangan titik mengambang field dalam kunci TairHash yang ditentukan dengan angka tertentu. Jika kunci tidak ada, kunci akan dibuat secara otomatis. Jika field yang ditentukan tidak ada, field tersebut akan dibuat dengan nilai 0 sebelum operasi penambahan. Catatan Setelah Anda menetapkan timeout untuk suatu field, jika Anda menjalankan perintah ini lagi pada field tersebut tanpa menentukan timeout, field tersebut akan diatur agar tidak pernah kedaluwarsa. |
Opsi |
|
Nilai kembali |
|
Contoh | Jalankan perintah Perintah contoh: Nilai kembali contoh: |
EXHGETWITHVER
Kategori | Deskripsi |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Mengambil nilai dan versi field dalam kunci TairHash yang ditentukan. Mengembalikan nil jika kunci atau field tidak ada. |
Opsi |
|
Nilai kembali |
|
Contoh | Perintah contoh: Nilai kembali contoh: |
EXHMGET
Kategori | Deskripsi |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Mengambil nilai beberapa field dalam kunci TairHash yang ditentukan. Mengembalikan nil jika kunci atau field tidak ada. |
Opsi |
|
Nilai kembali |
|
Contoh | Jalankan perintah Perintah contoh: Tanggapan contoh: |
EXHMGETWITHVER
Kategori | Deskripsi |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Mengambil nilai dan versi beberapa field dalam kunci TairHash yang ditentukan. |
Opsi |
|
Nilai kembali |
|
Contoh | Jalankan perintah Perintah contoh: Tanggapan contoh: |
EXHLEN
Kategori | Deskripsi |
Sintaksis |
|
Kompleksitas waktu | O(1) jika opsi NOEXP tidak ditentukan. O(N) jika opsi NOEXP ditentukan. |
Deskripsi perintah | Mengambil jumlah field dalam kunci TairHash yang ditentukan. Perintah ini tidak memicu eviction pasif atau menyaring field yang telah kedaluwarsa. Oleh karena itu, hasilnya mungkin mencakup field yang telah kedaluwarsa tetapi belum dihapus. Untuk mengembalikan hanya jumlah field yang belum kedaluwarsa, tentukan opsi NOEXP. |
Opsi |
|
Nilai kembali |
|
Contoh | Perintah contoh: Tanggapan contoh: |
EXHEXISTS
Kategori | Deskripsi |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Memeriksa apakah field yang ditentukan ada dalam kunci TairHash. |
Opsi |
|
Nilai kembali |
|
Contoh | Perintah contoh: Nilai kembali contoh: |
EXHSTRLEN
Kategori | Deskripsi |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Mengambil panjang nilai field dalam kunci TairHash yang ditentukan. |
Opsi |
|
Nilai kembali |
|
Contoh | Perintah contoh: Nilai kembali contoh: |
EXHKEYS
Kategori | Deskripsi |
Sintaksis |
|
Kompleksitas waktu | O(N) |
Deskripsi perintah | Mengambil semua field dalam kunci TairHash yang ditentukan. |
Opsi |
|
Nilai kembali |
|
Contoh | Jalankan perintah Perintah contoh: Nilai kembali contoh: |
EXHVALS
Kategori | Deskripsi |
Sintaksis |
|
Kompleksitas waktu | O(N) |
Deskripsi perintah | Mengambil nilai semua field dalam kunci TairHash yang ditentukan. |
Opsi |
|
Nilai kembali |
|
Contoh | Jalankan perintah Perintah contoh: Nilai kembali contoh: |
EXHGETALL
Kategori | Deskripsi |
Sintaksis |
|
Kompleksitas waktu | O(N) |
Deskripsi perintah | Mengambil semua field beserta nilainya dalam kunci TairHash yang ditentukan. |
Opsi |
|
Nilai kembali |
|
Contoh | Jalankan perintah Perintah contoh: Tanggapan contoh: |
EXHSCAN
Kategori | Deskripsi |
Sintaksis |
|
Kompleksitas waktu | O(1) untuk setiap panggilan, dan O(N) untuk traversal penuh. |
Deskripsi perintah | Memindai kunci TairHash yang ditentukan. Catatan Perintah ini hanya didukung untuk instans optimasi memori. |
Opsi |
|
Nilai kembali |
|
Contoh | Jalankan perintah Perintah contoh: Nilai kembali contoh: |
EXHDEL
Kategori | Deskripsi |
Sintaksis |
|
Kompleksitas waktu | O(1) |
Deskripsi perintah | Menghapus field dari kunci TairHash yang ditentukan. Mengembalikan 0 jika kunci atau field tidak ada. Mengembalikan 1 jika penghapusan berhasil. |
Opsi |
|
Nilai kembali |
|
Contoh | Perintah contoh: Nilai kembali contoh: |
FAQ
Q: Mengapa exHash menggunakan lebih banyak memori dibandingkan hash standar dari Redis Open-Source Edition untuk data yang sama?
A: exHash memungkinkan Anda menetapkan waktu kedaluwarsa dan versi untuk setiap field secara individual. Hal ini memerlukan penyimpanan metadata tambahan dalam struktur data, sehingga mengakibatkan penggunaan memori yang lebih tinggi dibandingkan hash standar dari Redis Open-Source Edition.