Instans Tair berbasis DRAM merupakan tier berkinerja tinggi dari ApsaraDB for Redis. Setiap node data memberikan throughput sekitar tiga kali lipat dibandingkan instans Redis Edisi Open-Source dengan spesifikasi setara, berkat arsitektur multi-threaded yang memisahkan I/O, eksekusi perintah, dan pemantauan ke dalam jenis thread khusus. Gunakan instans berbasis DRAM ketika traffic hotkey, tekanan write konkuren, atau biaya maintenance kluster menjadi bottleneck.
Manfaat
| Manfaat | Detail |
|---|---|
| Kompatibilitas | Sepenuhnya kompatibel dengan Redis 7.0, Redis 6.0, dan Redis 5.0. Tidak diperlukan perubahan pada kode aplikasi. |
| Kinerja | Arsitektur multi-threaded memberikan QPS sekitar 3× lebih tinggi dibandingkan instans Redis Edisi Open-Source dengan spesifikasi yang sama. Sinkronisasi data penuh dan inkremental dijalankan dalam thread I/O untuk mempercepat proses sinkronisasi. |
| Mode sinkronisasi | Mendukung mode replikasi semi-sinkron. Setelah node master mengeksekusi pembaruan dari client, ia mereplikasi log ke node replika dan hanya mengembalikan respons setelah replika mengonfirmasi penerimaan, sehingga memastikan tidak ada kehilangan data selama alih bencana ketersediaan tinggi. |
| Arsitektur penyebaran | Standard, cluster, dan read/write splitting. |
| Struktur data tambahan | Mengintegrasikan beberapa modul Tair internal: exString (termasuk perintah CAS/CAD), exHash, exZset, GIS, Bloom, Doc, TS, Cpc, Roaring, Search, dan Vector. |
| Fitur enterprise-grade | Data flashback, proxy query cache, dan Global Distributed Cache. |
| Keamanan data | Mendukung enkripsi SSL (Secure Sockets Layer) dan TDE (Transparent Data Encryption) untuk mengenkripsi dan mendekripsi file RDB (Redis Database). |
Kapan menggunakan instans berbasis DRAM
Pilih instans berbasis DRAM jika salah satu kondisi berikut berlaku:
QPS single-node melebihi 100.000: Node Redis Edisi Open-Source mencapai batas maksimum 80.000–100.000 QPS. Instans berbasis DRAM mampu menangani QPS data hot yang melebihi 200.000 tanpa degradasi kinerja.
Flash sale atau lonjakan traffic: Model multi-threaded menyerap traffic burst dan menjaga kinerja stabil, mencegah masalah koneksi selama jam sibuk.
Batasan perintah kluster: Instans kluster Redis Edisi Open-Source memiliki batasan pada transaksi database dan skrip Lua. Instans kluster berbasis DRAM menghilangkan batasan tersebut.
Pemisahan baca/tulis dengan beban write berat: Pemisahan baca/tulis Redis Edisi Open-Source mampu menangani volume baca tinggi tetapi tidak dapat mempertahankan beban write konkuren besar. Instans berbasis DRAM dalam mode pemisahan baca/tulis mendukung keduanya — satu node data dan hingga lima replika baca untuk jutaan QPS.
Pengurangan biaya kluster: Jika kluster Redis self-managed terus bertambah jumlah nodenya, beralih ke instans kluster berbasis DRAM dapat mengurangi ukuran kluster hingga dua pertiga dan memangkas biaya O&M secara signifikan.
Panduan pemilihan arsitektur
| Arsitektur | Redis Edisi Open-Source | Instans berbasis DRAM |
|---|---|---|
| Standard | Tidak cocok ketika QPS single-node melebihi 100.000 | Mampu menangani QPS single-node di atas 100.000 |
| Cluster | Data hot pada satu node menurunkan kinerja data lain pada node yang sama | Akses data hot berkinerja tinggi dengan biaya maintenance lebih rendah |
| Read/write splitting | Throughput baca tinggi; kapasitas write konkuren terbatas | Throughput baca tinggi dan kapasitas write konkuren tinggi |
Cara kerja
Arsitektur multi-threaded
Redis Edisi Open-Source menggunakan model single-threaded di mana satu thread menangani seluruh I/O jaringan dan eksekusi perintah. Pendekatan ini cukup untuk beban moderat tetapi menjadi bottleneck pada konkurensi tinggi.
Instans Tair berbasis DRAM membagi beban kerja ke dalam tiga jenis thread:
Thread I/O — membaca permintaan, mengurai perintah, dan mengirimkan respons
Thread pekerja — mengeksekusi perintah dan event pengatur waktu
Thread tambahan — memantau heartbeat dan status node untuk ketersediaan tinggi
Setiap instans mendukung hingga empat thread I/O yang berjalan secara konkuren. Antrian unlocked dan pipeline mentransfer data antara thread I/O dan thread pekerja untuk memaksimalkan kinerja multi-threading.

*Gambar 1. Model single-threaded Redis — satu thread menangani permintaan baca, penguraian permintaan, pemrosesan data, dan respons.*

*Gambar 2. Model multi-threaded Tair — thread I/O, pekerja, dan tambahan memproses tugas secara paralel.*
Apa yang dipercepat oleh model multi-threaded:
| Jenis operasi | Akselerasi |
|---|---|
| Struktur data umum (String, List, Set, Hash, Sorted Set, HyperLogLog, Geo) | Ya — peningkatan signifikan |
| Struktur data tambahan (modul Tair) | Ya |
| Operasi API pub/sub dan blocking | Ya — peningkatan throughput sekitar 50%, direplikasi dalam thread pekerja |
| Transaksi dan skrip Lua | Tidak — harus dieksekusi secara berurutan |
Berbeda dengan multi-threading Redis 6.0, yang meningkatkan kinerja hingga 2× tetapi mengonsumsi sumber daya CPU tinggi, arsitektur Real Multi-IO pada instans berbasis DRAM secara menyeluruh mempercepat baik I/O maupun eksekusi perintah. Hal ini memberikan ketahanan lebih kuat terhadap dampak koneksi dan kapasitas throughput yang meningkat secara linear.
Struktur data tambahan
Tipe data Redis standar — String, List, Hash, Set, Sorted Set, dan Stream — mencakup sebagian besar kasus penggunaan umum. Untuk skenario lebih kompleks seperti kueri geospasial, analisis deret waktu, pencarian vektor, atau struktur data probabilistik, biasanya diperlukan modifikasi data aplikasi atau penulisan skrip Lua pada Redis standar.
Instans berbasis DRAM mengintegrasikan beberapa modul Tair internal yang menambahkan kemampuan tersebut secara native.
Ketersediaan modul berdasarkan versi Redis:
| Modul | Redis 7.0 atau 6.0 | Redis 5.0 |
|---|---|---|
| exString | Ya | Ya |
| exHash | Ya | Ya |
| exZset | Ya | Ya |
| GIS | Ya | Ya |
| Bloom | Ya | Ya |
| Doc | Ya | Ya |
| TS | Ya | Ya |
| Cpc | Ya | Ya |
| Roaring | Ya | Ya |
| Search | Ya | Ya |
| Vector | Ya | Tidak |
Fitur enterprise-grade
| Fitur | Deskripsi |
|---|---|
| Data flashback | Tair menyimpan data backup AOF (append-only file) hingga tujuh hari. Tentukan titik waktu apa pun akurat hingga detik untuk memulihkan data ke instans baru. |
| Proxy query cache | Node proxy menyimpan cache respons untuk hotkey dalam periode validitas yang dapat dikonfigurasi. Permintaan berulang dilayani dari cache tanpa menyentuh shard data backend. |
| Global Distributed Cache | Sistem database redundansi geo-aktif yang mendukung beberapa situs di wilayah berbeda melayani traffic secara simultan. |
| Sinkronisasi data dua arah melalui DTS | Data Transmission Service (DTS) mendukung sinkronisasi data dua arah antar instans Tair untuk skenario redundansi geo-aktif dan pemulihan bencana geo. Untuk petunjuk penyiapan, lihat Konfigurasikan sinkronisasi data dua arah antar instans Tair. |
FAQ
Client saya tidak mendukung perintah yang disediakan oleh modul Tair. Apa yang harus saya lakukan?
Definisikan perintah modul dalam kode aplikasi Anda sebelum menggunakannya, atau beralih ke client yang sudah memiliki dukungan bawaan. Untuk daftar client yang kompatibel, lihat Clients.