Tair Instans berbasis DRAM ideal untuk skenario dengan operasi baca dan tulis konkurensi tinggi pada data panas, serta memerlukan performa lebih tinggi daripada yang dapat diberikan oleh instans Redis Edisi Open-Source. Dibandingkan dengan instans Redis Edisi Open-Source, instans berbasis DRAM menawarkan manfaat tambahan seperti peningkatan performa multi-threading dan integrasi beberapa struktur data tambahan.
Manfaat
Item | Deskripsi |
Kompatibilitas | Instans berbasis DRAM sepenuhnya kompatibel dengan Redis asli, tidak memerlukan perubahan pada kode bisnis. Mereka menawarkan kompatibilitas dengan Redis 7.0, Redis 6.0, dan Redis 5.0. |
Performa |
|
Mode sinkronisasi | Mode replikasi semi-sinkron didukung secara tambahan. Dalam mode ini, setelah pembaruan yang dimulai oleh klien dieksekusi pada node master, node master akan mereplikasi log ke node replika. Tanggapan hanya dikirimkan ke klien setelah node replika mengonfirmasi penerimaan log. Ini memastikan tidak ada data yang hilang selama alih bencana dengan ketersediaan tinggi. |
Arsitektur Penyebaran | Instans berbasis DRAM mendukung arsitektur standar, kluster, dan pemisahan baca/tulis. |
Integrasi Modul Struktur Data | Instans berbasis DRAM mengintegrasikan beberapa modul internal Tair untuk memperluas ruang lingkup yang berlaku dari Tair. Modul-modul ini termasuk exString (termasuk perintah yang meningkatkan fungsionalitas string Redis), exHash, exZset, GIS, Bloom, Doc, TS, Cpc, Roaring, Search, dan Vector. Modul-modul ini menghilangkan kekhawatiran tentang struktur penyimpanan dan ketepatan waktu dan memungkinkan Anda fokus pada pengembangan aplikasi. |
Fitur tingkat perusahaan | Instans berbasis DRAM mendukung beberapa fitur tingkat perusahaan, seperti flashback data, cache query proxy, dan Global Distributed Cache. Untuk informasi lebih lanjut, lihat Gunakan flashback data untuk memulihkan data berdasarkan titik waktu, Gunakan cache query proxy untuk menangani masalah yang disebabkan oleh hotkeys, dan Global Distributed Cache. |
Keamanan data |
|
Skenario
Instans berbasis DRAM Tair cocok untuk skenario seperti siaran langsung, penjualan kilat, dan pendidikan online. Berikut adalah beberapa skenario tipikal:
Skenario 1: Selama penjualan kilat, QPS pada beberapa hotkey yang di-cache mungkin melebihi 200.000. Instans Redis Edisi Open-Source tidak dapat memenuhi persyaratan ini.
Instans DRAM berbasis standar dapat menangani permintaan selama penjualan kilat secara efisien tanpa masalah performa.
Skenario 2: Instans kluster Redis Edisi Open-Source memiliki batasan pada transaksi database dan skrip Lua.
Instans berbasis DRAM memberikan performa tinggi dan menghilangkan batasan pada penggunaan perintah dalam instans kluster Redis Edisi Open-Source.
Skenario 3: Anda telah membuat kluster Redis yang dikelola sendiri yang terdiri dari satu node master dan beberapa node replika. Jumlah node replika dan biaya O&M meningkat seiring dengan meningkatnya beban kerja Anda.
Instans berbasis DRAM yang menggunakan arsitektur pemisahan baca/tulis dapat menyediakan satu node data dan hingga lima replika baca untuk membantu Anda menangani jutaan QPS.
Skenario 4: Anda telah membuat kluster Redis yang dikelola sendiri untuk menangani puluhan juta QPS. Jumlah shard data dan biaya O&M meningkat seiring dengan meningkatnya beban kerja Anda.
Instans kluster berbasis DRAM dapat mengecilkan kluster hingga dua pertiga dan secara signifikan mengurangi biaya O&M.
Perbandingan antara model threading
Arsitektur Threading | Deskripsi |
Gambar 1. Model single-threaded Redis | Redis Edisi Open-Source dan Redis asli menggunakan model single-threaded. Alur pemrosesan data adalah sebagai berikut: membaca permintaan, mengurai permintaan, memproses data, dan mengirimkan tanggapan. Dalam situasi ini, operasi I/O jaringan dan penguraian permintaan mengonsumsi sebagian besar sumber daya yang tersedia. |
Gambar 2. Model multi-threading Tair | Tair Instans berbasis DRAM memisahkan tugas pada tahap layanan yang berbeda dan menggunakan beberapa thread dengan pembagian kerja yang jelas untuk memproses tugas secara paralel, sehingga meningkatkan performa.
Setiap instans berbasis DRAM membaca dan mengurai permintaan di Thread I/O, menempatkan permintaan yang telah diurai sebagai perintah dalam antrian, dan kemudian mengirimkan perintah-perintah ini ke thread pekerja. Kemudian, thread pekerja menjalankan perintah untuk memproses permintaan dan mengirimkan tanggapan ke Thread I/O menggunakan antrian yang berbeda. Tair Instans berbasis DRAM mendukung hingga empat Thread I/O yang berjalan secara bersamaan. Antrian yang tidak terkunci dan pipeline digunakan untuk mentransmisikan data antara Thread I/O dan thread pekerja untuk meningkatkan performa multi-threading. Catatan
|
Berbeda dengan multi-threading Redis 6.0 (yang meningkatkan performa hingga 2 kali lipat tetapi mengonsumsi sumber daya CPU tinggi), Real Multi-IO dari instans berbasis DRAM dapat secara menyeluruh mempercepat I/O dan eksekusi perintah, memberikan resistensi yang lebih besar terhadap dampak koneksi, dan meningkatkan kapasitas throughput secara linear.
Perbandingan Performa
Instans Redis Edisi Open-Source menggunakan model single-threading yang sama dengan database Redis asli. Dalam model single-threading, setiap node data mendukung 80.000 hingga 100.000 QPS. Instans DRAM berbasis Tair menggunakan model multi-threaded, yang memungkinkan thread I/O, pekerja, dan tambahan memproses permintaan secara paralel. Setiap node data dari instans DRAM memberikan performa sekitar tiga kali lipat dari performa yang diberikan oleh setiap node data dari instans Redis Edisi Open-Source. Tabel berikut menggambarkan perbandingan antara instans Redis Edisi Open-Source dan instans DRAM berbasis Tair dengan arsitektur yang berbeda dan kasus penggunaannya.
Arstektur | Instans Redis Edisi Open-Source | Instans Tair berbasis DRAM |
Arstektur Standar | Instans ini tidak cocok jika QPS yang diperlukan pada satu node melebihi 100.000. | Instans ini cocok jika QPS yang diperlukan pada satu node melebihi 100.000. |
Arstektur Kluster | Sebuah instans kluster terdiri dari beberapa node data. Setiap node data memberikan performa yang serupa dengan instans standar. Jika sebuah node data menyimpan data panas dan menerima sejumlah besar permintaan konkuren untuk data panas tersebut, operasi baca dan tulis pada data lain yang disimpan pada node data tersebut mungkin terpengaruh. Akibatnya, performa node data tersebut menurun. | Instans ini memberikan performa tinggi untuk membaca dan menulis data panas dengan biaya pemeliharaan yang lebih rendah. |
Arstektur Pemisahan Baca/Tulis | Instans ini memberikan performa baca tinggi dan cocok untuk skenario di mana jumlah operasi baca lebih besar daripada jumlah operasi tulis. Namun, instans ini tidak dapat mendukung sejumlah besar operasi tulis konkuren. | Instans ini memberikan performa baca tinggi dan dapat mendukung sejumlah besar operasi tulis konkuren. Instans ini cocok untuk skenario di mana sejumlah besar operasi tulis perlu diproses tetapi jumlah operasi baca lebih besar daripada jumlah operasi tulis. |
Integrasi Beberapa Modul Redis
Mirip dengan Redis open source, Redis Edisi Open-Source mendukung berbagai struktur data seperti String, List, Hash, Set, Sorted Set, dan Stream. Struktur data ini cukup untuk mendukung beban kerja pengembangan umum tetapi tidak untuk beban kerja yang kompleks. Untuk mengelola beban kerja yang kompleks, Anda harus memodifikasi data aplikasi Anda atau menjalankan skrip Lua.
Instans berbasis DRAM mengintegrasikan beberapa modul internal Tair untuk memperluas ruang lingkup yang berlaku dari Tair. Modul-modul ini termasuk exString (termasuk perintah yang meningkatkan fungsionalitas string Redis), exHash, exZset, GIS, Bloom, Doc, TS, Cpc, Roaring, Search, dan Vector. Modul-modul ini menyederhanakan pengembangan bisnis dalam skenario kompleks dan memungkinkan Anda fokus pada inovasi bisnis Anda.
Instans berbasis DRAM yang kompatibel dengan Redis 7.0 atau 6.0 mendukung semua struktur data sebelumnya.
Instans berbasis DRAM yang kompatibel dengan Redis 5.0 mendukung semua struktur data sebelumnya kecuali TairVector.
Fitur tingkat perusahaan
Fitur tingkat perusahaan | Deskripsi |
Setelah Anda mengaktifkan fitur flashback data untuk instans Tair, Tair menyimpan data cadangan file append-only (AOF) hingga tujuh hari. Selama periode retensi, Anda dapat menentukan titik waktu yang akurat hingga detik untuk membuat instans dan memulihkan data cadangan pada titik waktu yang ditentukan ke instans baru. | |
Setelah Anda mengaktifkan fitur proxy query cache, node proxy yang dikonfigurasi akan menyimpan permintaan dan tanggapan untuk hotkeys. Jika permintaan yang sama diterima dari klien dalam periode validitas tertentu, Tair mengambil tanggapan untuk permintaan tersebut dari cache dan mengembalikan tanggapan ke klien. Selama proses ini, Tair tidak perlu berinteraksi dengan shard data backend. Untuk informasi lebih lanjut, lihat Gunakan proxy query cache untuk menangani masalah yang disebabkan oleh hotkeys. | |
Global Distributed Cache untuk Tair adalah sistem database redundansi geo-aktif yang dikembangkan berdasarkan Redis Edisi Open-Source. Global Distributed Cache mendukung skenario bisnis di mana beberapa situs di wilayah berbeda memberikan layanan secara bersamaan. Ini membantu perusahaan mereplikasi arsitektur redundansi geo-aktif Alibaba. | |
Sinkronisasi data dua arah menggunakan DTS | Data Transmission Service (DTS) mendukung sinkronisasi data dua arah antara instans Tair. Solusi sinkronisasi ini cocok untuk skenario seperti redundansi geo-aktif dan pemulihan bencana geo. Untuk informasi lebih lanjut, lihat Konfigurasikan sinkronisasi data dua arah antara instans Tair. |
FAQ
T: Apa yang harus saya lakukan jika klien tidak mendukung perintah yang disediakan oleh modul baru?
J: Anda dapat mendefinisikan perintah dari modul data baru dalam kode aplikasi Anda sebelum menggunakan perintah tersebut di klien Anda. Anda juga dapat menggunakan klien yang menyediakan dukungan bawaan untuk perintah-perintah ini. Untuk informasi lebih lanjut, lihat Klien.

