All Products
Search
Document Center

Tair (Redis® OSS-Compatible):Standar pengembangan dan O&M untuk Tair (Redis OSS-compatible)

Last Updated:Sep 19, 2026

Tair (Redis OSS-compatible) menyediakan pemrosesan data dalam memori berkinerja tinggi. Ikuti standar pengembangan dan O&M untuk Tair (Redis OSS-compatible) ini guna membangun sistem yang efisien dan memaksimalkan Tair. Berdasarkan pengalaman bertahun-tahun dalam O&M Alibaba Cloud, standar ini mencakup penerapan bisnis, desain kunci, penggunaan SDK, penggunaan perintah, dan manajemen O&M.

Batas kinerja Tair

Gambar 1. Batas kinerja TairTair performance boundaries

Jenis resource

Deskripsi

Resource komputasi

Wildcard, skrip Lua konkuren, PUBSUB satu-ke-banyak, dan hotkey mengonsumsi resource komputasi secara intensif. Untuk instans kluster, item-item ini juga dapat menyebabkan ketimpangan permintaan (request skew) dan pemanfaatan shard yang tidak optimal.

Resource penyimpanan

Pekerjaan streaming dan kunci besar (large keys) mengonsumsi resource penyimpanan secara intensif. Untuk instans kluster, item-item ini juga dapat menyebabkan kesenjangan data (data skew) dan pemanfaatan shard yang tidak optimal.

Resource jaringan

Pemindaian seluruh database (KEYS) dan kueri rentang pada kunci serta nilai besar (HGETALL) mengonsumsi resource jaringan secara intensif dan sering menyebabkan kemacetan thread.

Penting

Kemampuan konkurensi tinggi Tair tidak secara signifikan meningkatkan kinerja akses seperti yang diharapkan, tetapi memengaruhi kinerja keseluruhan Tair. Sebagai contoh, penyimpanan nilai besar di Tair tidak meningkatkan kinerja akses secara signifikan.

Untuk instans kluster, hotkey, kunci besar, atau nilai besar juga dapat menyebabkan penyimpanan tidak seimbang atau permintaan tidak seimbang . Di lingkungan produksi, penting untuk menghindari mencapai batas kinerja Tair.

Standar penerapan bisnis

Tingkat kepentingan

Standar

Deskripsi

★★★★★

Tentukan apakah skenario tersebut merupakan cache berkecepatan tinggi atau database dalam memori .

★★★★★

Terapkan aplikasi Anda di virtual private cloud (VPC) yang sama dengan instans Tair Anda, misalnya pada instans Elastic Compute Service (ECS).

Tair memberikan kinerja tinggi, tetapi penerapan yang jauh dari instans Tair atau koneksi melalui Internet secara signifikan menurunkan kinerja karena latensi jaringan.

Catatan

Untuk penerapan cross-region, gunakan Global Distributed Cache untuk pemulihan bencana geo, redundansi geo-aktif, dan pengurangan latensi.

★★★★☆

Buat instans Tair untuk setiap layanan.

Jangan berbagi instans Tair antarlayanan. Menggabungkan beban kerja cache dan database dalam memori menyebabkan kebijakan penggantian, kueri lambat, dan eksekusi perintah FLUSHDB dari satu layanan memengaruhi layanan lainnya.

★★★★☆

Konfigurasikan kebijakan eviksi yang sesuai untuk mengeviktir kunci yang kedaluwarsa.

Kebijakan penggantian default untuk kunci kedaluwarsa di Tair adalah volatile-lru . Konfigurasikan kebijakan penggantian di Parameter yang dapat dikonfigurasi untuk instans Redis Edisi Open-Source.

★★★☆☆

Atur data dan durasi uji stres.

Tair tidak menghapus data uji stres. Untuk mencegah dampak terhadap bisnis Anda, Anda harus mengelola data dan durasi uji stres sendiri.

Standar desain kunci

Tingkat kepentingan

Standar

Deskripsi

★★★★★

Pertahankan nilai di bawah 10 KB.

Nilai yang terlalu besar menyebabkan kesenjangan data, hotkey, bandwidth tinggi, atau pemanfaatan CPU tinggi.

★★★★★

Gunakan nama kunci yang deskriptif dan ringkas.

  • Nama kunci:

    • Gunakan string yang mudah dibaca. Pisahkan komponen database, tabel, dan bidang dengan tanda titik dua (:). Contoh: project:user:001.

    • Persingkat nama kunci tanpa kehilangan makna. Misalnya, username dapat dipersingkat menjadi u.

    • Di Redis, tanda kurung kurawal {} adalah hash tag. Di instans kluster, gunakan tanda kurung kurawal dengan benar dalam nama kunci untuk mencegah kesenjangan data . Spesifikasi kluster Redis.

      Catatan

      Untuk instans kluster, jika Anda ingin mengelola beberapa kunci dengan perintah seperti RENAME dan tidak menggunakan hash tag untuk menempatkan kunci-kunci tersebut dalam shard data yang sama, perintah tersebut akan gagal.

  • Panjang: Pertahankan nama kunci dalam batas 128 byte, lebih pendek lebih baik.

★★★★★

Batasi sub-kunci per struktur data kompleks hingga kurang dari 1.000.

Catatan

Struktur data kompleks umum mencakup Hash, Set, Zset, Geo, dan Stream, serta struktur khusus Tair (Edisi Perusahaan), seperti exHash, Bloom, dan TairGIS.

Kompleksitas waktu perintah seperti HGETALL meningkat seiring jumlah sub-kunci. Perintah O(N)+ yang sering digunakan pada kunci dengan sub-kunci berlebihan menyebabkan kueri lambat, kesenjangan data, dan hotkey.

★★★★☆

Serialisasi nilai ke dalam struktur yang dapat dibaca.

Bytecode bahasa dapat berubah antarversi. Menyimpan objek mentah (Java, C#) di Tair menyulitkan peningkatan stack. Alih-alih itu, serialisasi nilai ke dalam struktur yang dapat dibaca.

Standar penggunaan SDK

Tingkat kepentingan

Standar

Deskripsi

★★★★★

Gunakan JedisPool atau JedisCluster untuk menghubungkan ke instans Tair.

Catatan

Gunakan klien TairJedis untuk instans Tair (Edisi Perusahaan) berbasis DRAM — klien ini menyediakan kelas enkapsulasi untuk struktur data baru. Gunakan klien untuk menghubungkan ke instans.

Koneksi tunggal tidak dapat terhubung ulang secara otomatis setelah timeout. Konfigurasikan koneksi JedisPool: Gunakan klien untuk menghubungkan ke instans, Optimasi JedisPool, dan JedisCluster.

★★★★☆

Rancang mekanisme toleransi kesalahan yang tepat untuk klien Anda.

Fluktuasi jaringan dan penggunaan resource tinggi dapat menyebabkan timeout koneksi atau kueri lambat di Tair. Untuk mencegah risiko ini, Anda harus merancang mekanisme toleransi kesalahan yang tepat untuk klien Anda.

★★★★☆

Gunakan interval retry yang memadai.

Interval retry kurang dari 200 ms dapat memicu retry cepat dan menyebabkan avalanche layanan. Mekanisme retry untuk klien Redis.

Standar penggunaan perintah

Tingkat kepentingan

Standar

Deskripsi

★★★★★

Hindari kueri rentang seperti KEYS *. Gunakan kueri titik atau SCAN sebagai gantinya.

Kueri rentang dapat menyebabkan gangguan layanan, kueri lambat, atau kemacetan.

★★★★★

Gunakan struktur data diperluas (seperti exString (termasuk perintah yang meningkatkan fungsionalitas string Redis), exHash, exZset, GIS, Bloom, Doc, TS, Cpc, Roaring, Search, dan Vector) alih-alih skrip Lua.

Skrip Lua mengonsumsi resource komputasi dan memori secara intensif tanpa dukungan multithreading. Skrip yang kompleks atau tidak tepat dapat menghabiskan resource.

★★★★☆

Gunakan pipeline untuk mengurangi waktu round-trip (RTT) data.

Saat klien Anda tidak bergantung pada tanggapan individual, kelompokkan perintah menggunakan pipeline. Panduan:

  • Buat koneksi khusus untuk operasi pipeline, terpisah dari operasi biasa.

  • Batasi setiap pipeline hingga 100 perintah atau kurang.

★★★★☆

Gunakan perintah Redis dengan benar.

Batasan perintah transaksi:

  • Transaksi Redis tidak dapat dibatalkan (rolled back).

  • Jika Anda ingin menjalankan perintah transaksi pada instans kluster, gunakan hash tag untuk mengalokasikan kunci ke slot hash yang sama. Cegah kesenjangan penyimpanan yang dapat disebabkan oleh hash tag.

  • Jangan membungkus perintah transaksi dalam skrip Lua — kompilasi dan pemuatan mengonsumsi resource komputasi secara intensif.

★★★★☆

Hindari distribusi pesan skala besar dengan perintah Pub/Sub.

Pub/Sub tidak memiliki mekanisme persistensi data dan acknowledgment. Mendistribusikan pesan berukuran lebih dari 1 KB kepada lebih dari 100 subscriber dapat menghabiskan resource server dan menyebabkan kehilangan pesan.

Catatan

Untuk meningkatkan kinerja dan keseimbangan, Tair mengoptimalkan Pub/Sub di instans kluster dengan melakukan penghashan perintah ke node data berdasarkan nama channel.

Standar manajemen O&M

Tingkat kepentingan

Standar

Deskripsi

★★★★★

Pahami dampak dari berbagai operasi manajemen instans.

Perubahan konfigurasi atau restart dapat menyebabkan pemutusan sementara pada instans Tair. Pahami dampaknya sebelum melanjutkan. Status instans dan dampaknya.

★★★★★

Uji penanganan error klien dan logika pemulihan bencana.

Tair memantau kesehatan node dan secara otomatis memicu alih bencana master-replika saat master tidak tersedia. Sebelum klien digunakan di produksi, picu alih bencana secara manual untuk memverifikasi penanganan error dan logika pemulihan bencana. Alihkan beban kerja secara manual dari node master ke node replika.

★★★★★

Nonaktifkan perintah yang memakan waktu atau berisiko tinggi.

Penyalahgunaan perintah di lingkungan produksi dapat menyebabkan kehilangan data (FLUSHALL) atau kemacetan jaringan (KEYS). Nonaktifkan perintah berisiko untuk meningkatkan stabilitas. Nonaktifkan perintah berisiko tinggi.

★★★★☆

Tangani event tertunda segera.

Alibaba Cloud menghasilkan event tertunda untuk peningkatan perangkat keras, pembaruan perangkat lunak, atau maintenance jaringan — misalnya, saat versi minor database perlu diperbarui. Tinjau dampaknya dan jadwalkan ulang jika diperlukan. Lihat dan kelola event terjadwal.

★★★★☆

Konfigurasikan alert untuk metrik inti.

Pantau pemanfaatan CPU, penggunaan memori, dan bandwidth secara real time dengan Pengaturan alert.

★★★★☆

Periksa kesehatan instans secara berkala menggunakan fitur O&M Tair untuk troubleshooting anomali resource.

★★★☆☆

Aktifkan fitur log audit dan evaluasi log audit tersebut.

Fitur log audit mencatat operasi tulis dan mendukung kueri, analisis online, serta ekspor. Gunakan fitur ini untuk memantau keamanan dan kinerja instans. Log Audit.

Penting

Setelah Anda mengaktifkan fitur log audit, kinerja instans Tair dapat menurun 5% hingga 15%, tergantung pada volume tulis dan audit. Untuk beban kerja Tair yang intensif menulis, aktifkan log audit hanya selama operasi O&M seperti troubleshooting.