全部产品
Search
文档中心

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

更新时间:Nov 10, 2025

Tair (Redis OSS-compatible) adalah layanan database berkinerja tinggi. Dokumen ini menjelaskan standar pengembangan dan O&M untuk Tair (Redis OSS-compatible), membantu Anda merancang sistem bisnis yang lebih efisien dan memanfaatkan Tair secara optimal. Standar ini dikembangkan oleh Alibaba Cloud berdasarkan pengalaman bertahun-tahun dalam operasi dan pemeliharaan, serta mencakup skenario seperti penyebaran bisnis, desain kunci, penggunaan SDK, penggunaan perintah, dan manajemen O&M.

Batasan kinerja Tair

Gambar 1. Batasan Kinerja TairRedis性能边界

Jenis sumber daya

Deskripsi

Sumber daya komputasi

Karakter wildcard, skrip Lua bersamaan, satu-ke-banyak PUBSUB, dan hotkeys mengonsumsi sejumlah besar sumber daya komputasi. Untuk instans kluster, item-item ini juga dapat menyebabkan permintaan miring dan pemanfaatan data shard yang tidak optimal.

Sumber daya penyimpanan

Pekerjaan streaming dan kunci besar mengonsumsi sejumlah besar sumber daya penyimpanan. Untuk instans kluster, item-item ini juga dapat menyebabkan kesenjangan data dan pemanfaatan data shard yang tidak optimal.

Sumber daya jaringan

Pemindaian basis data secara keseluruhan (dengan menjalankan perintah KEYS) dan kueri rentang untuk kunci dan nilai besar (dengan menjalankan perintah HGETALL) mengonsumsi sejumlah besar sumber daya jaringan dan sering menyebabkan kemacetan thread.

Penting

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

Untuk instans kluster, hotkeys, kunci besar, atau nilai besar dapat menyebabkan penyimpanan miring atau permintaan miring . Dalam lingkungan produksi, penting untuk menghindari mencapai batasan kinerja Tair.

Standar penyebaran bisnis

Tingkat Kepentingan

Standar

Deskripsi

★★★★★

Tentukan apakah skenario tersebut adalah cache kecepatan tinggi atau database dalam memori .

  • Cache kecepatan tinggi: Kami menyarankan Anda menonaktifkan persistensi AOF dalam skenario hanya cache untuk mengurangi overhead dan mencegah ketergantungan kuat pada data dalam cache karena data tersebut dapat dihapus. Sebagai contoh, ketika database Tair mencapai kapasitas penyimpanan maksimumnya, kebijakan penggantian data dipicu untuk memberi ruang bagi data baru. Tergantung pada beban kerja tulis bisnis Anda, ini dapat mengakibatkan peningkatan latensi.

    Penting

    Untuk menggunakan fitur flashback data untuk memulihkan data berdasarkan waktu, Anda harus mengaktifkan persistensi AOF.

  • Database dalam memori: Kami menyarankan Anda memilih Tair (Edisi Perusahaan) instans yang dioptimalkan untuk memori persisten. Instans yang dioptimalkan untuk memori persisten menawarkan persistensi tingkat perintah. Selain itu, Anda dapat memantau penggunaan memori dengan mengonfigurasi peringatan di database. Untuk informasi lebih lanjut, lihat Pengaturan Peringatan.

★★★★★

Sebarkan bisnis Anda dekat dengan instans Tair. Sebagai contoh, Anda dapat menyebarkan bisnis Anda di instans Elastic Compute Service (ECS) yang berada di virtual private cloud (VPC) yang sama dengan instans Tair Anda.

Tair adalah layanan database berkinerja tinggi. Namun, jika Anda menyebarkan server bisnis jauh dari instans Tair dan server bisnis terhubung ke instans melalui Internet, kinerja Tair sangat terganggu karena latensi jaringan.

Catatan

Untuk penyebaran lintas wilayah, Anda dapat menggunakan kemampuan replikasi geo dari Global Distributed Cache untuk menerapkan pemulihan bencana geo atau redundansi geo aktif, mengurangi latensi jaringan, dan menyederhanakan desain bisnis. Untuk informasi lebih lanjut, lihat Global Distributed Cache.

★★★★☆

Buat instans Tair untuk setiap layanan.

Jangan gunakan instans Tair untuk layanan yang berbeda. Sebagai contoh, jangan gunakan instans Tair untuk layanan caching kecepatan tinggi dan database dalam memori secara bersamaan. Jika tidak, kebijakan penggantian, kueri lambat, dan eksekusi perintah FLUSHDB dari satu layanan akan memengaruhi layanan lainnya.

★★★★☆

Konfigurasikan kebijakan penggantian yang sesuai untuk menghapus kunci yang kedaluwarsa.

Kebijakan penggantian default untuk kunci yang kedaluwarsa dalam Tair adalah volatile-lru . Untuk informasi lebih lanjut tentang kebijakan penggantian, lihat Parameter yang Dapat Dikonfigurasi untuk Instans Redis Edisi Open-Source.

★★★☆☆

Kelola data uji stres dan durasinya.

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

Standar desain kunci

Tingkat Kepentingan

Standar

Deskripsi

★★★★★

Konfigurasikan nilai kunci ke ukuran yang sesuai. Kami menyarankan Anda menjaga ukuran nilai yang disimpan dalam kunci di bawah 10 KB.

Nilai yang terlalu besar dapat menyebabkan kesenjangan data, hotkeys, bandwidth tinggi, atau pemanfaatan CPU tinggi. Anda dapat mencegah masalah-masalah ini sejak awal dengan memastikan bahwa nilai kunci memiliki ukuran yang tepat.

★★★★★

Konfigurasikan nama kunci yang tepat dengan panjang yang sesuai.

  • Nama kunci:

    • Gunakan string yang dapat dibaca sebagai nama kunci. Jika Anda ingin menggabungkan nama database, nama tabel, dan nama bidang menjadi nama kunci, kami menyarankan Anda menggunakan titik dua (:) untuk memisahkannya. Contoh: project:user:001.

    • Persingkat nama kunci tanpa mengorbankan kemampuannya untuk mendeskripsikan bisnis Anda. Sebagai contoh, username dapat dipersingkat menjadi u.

    • Dalam Redis, tanda kurung kurawal {} dikenali sebagai tag hash. Dalam hal ini, jika Anda menggunakan instans kluster, Anda harus menggunakan tanda kurung kurawal dengan benar dalam nama kunci untuk mencegah kesenjangan data . Untuk informasi lebih lanjut, lihat Spesifikasi Kluster Redis.

      Catatan

      Untuk instans kluster, jika Anda ingin mengelola beberapa kunci dengan menjalankan perintah seperti RENAME dan tidak menggunakan tag hash untuk memastikan bahwa kunci-kunci tersebut berada di shard data yang sama, perintah tersebut tidak dapat dijalankan.

  • Panjang: Kami menyarankan Anda menjaga nama kunci dalam 128 byte dan lebih pendek jika memungkinkan.

★★★★★

Untuk struktur data kompleks yang mendukung sub-kunci, Anda harus menghindari memasukkan sub-kunci yang berlebihan dalam satu kunci. Kami menyarankan Anda memasukkan kurang dari 1.000 sub-kunci dalam satu kunci.

Catatan

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

Kompleksitas waktu perintah tertentu seperti HGETALL secara langsung berkaitan dengan jumlah sub-kunci. Jika Anda sering menjalankan perintah dengan kompleksitas waktu O(N) atau lebih tinggi, dan kunci tersebut berisi terlalu banyak sub-kunci, masalah seperti kueri lambat, kesenjangan data, dan hotkeys dapat terjadi.

★★★★☆

Gunakan metode serialisasi untuk mengonversi nilai menjadi struktur yang dapat dibaca.

Bytecode bahasa pemrograman dapat berubah saat versi bahasa berubah. Jika Anda menyimpan objek telanjang (seperti objek Java dan objek C#) di instans Tair, tumpukan perangkat lunak mungkin sulit untuk ditingkatkan. Kami menyarankan Anda menggunakan metode serialisasi untuk mengonversi nilai menjadi struktur yang dapat dibaca.

Standar penggunaan SDK

Tingkat Kepentingan

Standar

Deskripsi

★★★★★

Gunakan JedisPool atau JedisCluster untuk terhubung ke instans Tair.

Catatan

Kami menyarankan Anda menggunakan klien TairJedis untuk terhubung ke Tair (Edisi Perusahaan) instans berbasis DRAM, karena klien TairJedis menyediakan kelas enkapsulasi untuk struktur data baru. Untuk informasi lebih lanjut, lihat Gunakan klien untuk terhubung ke instans.

Jika Anda menggunakan satu koneksi, klien tidak dapat secara otomatis menyambungkan kembali ke instans Tair setelah koneksi habis waktu. Untuk informasi lebih lanjut tentang cara menggunakan JedisPool untuk terhubung ke instans Tair, lihat Gunakan klien untuk terhubung ke instans, Optimasi JedisPool, dan JedisCluster.

★★★★☆

Rancang mekanisme toleransi kesalahan yang tepat untuk klien Anda.

Fluktuasi jaringan dan penggunaan sumber daya yang 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.

★★★★☆

Tetapkan interval percobaan ulang yang lebih lama untuk klien Anda.

Jika interval percobaan ulang lebih pendek dari yang diperlukan (seperti lebih pendek dari 200 milidetik), banyak percobaan ulang dapat terjadi dalam waktu singkat. Hal ini dapat mengakibatkan avalan layanan. Untuk informasi lebih lanjut, lihat Mekanisme percobaan ulang untuk klien Redis.

Standar penggunaan perintah

Tingkat Kepentingan

Standar

Deskripsi

★★★★★

Hindari kueri rentang, seperti yang dieksekusi dengan menjalankan perintah KEYS *. Sebagai gantinya, gunakan beberapa kueri titik atau jalankan perintah SCAN untuk mengurangi latensi.

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

★★★★★

Gunakan struktur data ekstensi untuk melakukan operasi kompleks. Untuk informasi lebih lanjut, lihat Integrasi Modul Data Multipel. Jangan gunakan skrip Lua.

Skrip Lua mengonsumsi sejumlah besar sumber daya komputasi dan memori serta tidak mendukung akselerasi multi-threading. Skrip Lua yang terlalu kompleks atau tidak tepat dapat mengakibatkan habisnya sumber daya.

★★★★☆

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

Jika Anda ingin mengirim beberapa perintah ke server dan klien Anda tidak bergantung pada setiap respons dari server, Anda dapat menggunakan pipeline untuk mengirim perintah sekaligus. Perhatikan hal-hal berikut saat menggunakan pipeline:

  • Klien yang menggunakan pipeline secara eksklusif terhubung ke server. Kami menyarankan Anda membuat koneksi khusus untuk operasi pipeline untuk memisahkannya dari operasi reguler.

  • Setiap pipeline harus berisi jumlah perintah yang sesuai (tidak lebih dari 100).

★★★★☆

Gunakan perintah Redis dengan benar.

Saat Anda menggunakan perintah transaksi, perhatikan batasan berikut:

  • Berbeda dengan transaksi dalam database relasional, transaksi dalam Redis tidak dapat dibalikkan.

  • Jika Anda ingin menjalankan perintah transaksi pada instans kluster, gunakan tag hash untuk memastikan bahwa kunci yang akan dikelola dialokasikan di slot hash yang sama. Anda juga harus mencegah penyimpanan miring yang mungkin disebabkan oleh tag hash.

  • Jangan enkapsulasi perintah transaksi dalam skrip Lua, karena kompilasi dan pemuatan perintah-perintah ini mengonsumsi sejumlah besar sumber daya komputasi.

★★★★☆

Jangan gunakan perintah Redis untuk melakukan banyak tugas distribusi pesan.

Grup perintah Pub dan Sub tidak mendukung persistensi data atau mekanisme pengakuan yang memastikan keandalan data. Kami menyarankan Anda untuk tidak menggunakan perintah Pub atau Sub untuk melakukan banyak tugas distribusi pesan. Sebagai contoh, jika Anda menggunakan perintah-perintah ini untuk mendistribusikan pesan yang ukurannya lebih besar dari 1 KB kepada lebih dari 100 klien pelanggan, sumber daya server mungkin habis dan klien pelanggan mungkin tidak menerima pesan tersebut.

Catatan

Untuk meningkatkan kinerja dan keseimbangan, Tair dioptimalkan untuk perintah Pub dan Sub. Dalam instans kluster, node proxy menghitung nilai hash perintah berdasarkan nama saluran dan mengalokasikan perintah ke node data yang sesuai.

Standar manajemen O&M

Tingkat Kepentingan

Standar

Deskripsi

★★★★★

Pahami dampak dari berbagai operasi manajemen instans.

Perubahan konfigurasi atau restart memengaruhi status instans Tair. Sebagai contoh, koneksi sementara dapat terjadi pada instans tersebut. Sebelum Anda melakukan operasi tersebut, pastikan Anda memahami dampaknya. Untuk informasi lebih lanjut, lihat Status Instans dan Dampaknya.

★★★★★

Verifikasi kemampuan penanganan kesalahan atau logika pemulihan bencana klien.

Tair dapat memantau status kesehatan node. Jika node master dalam instans menjadi tidak tersedia, Tair secara otomatis memicu alih bencana master-replika. Peran node master dan replika dipertukarkan untuk memastikan ketersediaan tinggi instans. Sebelum klien umum tersedia, kami menyarankan Anda memicu alih bencana master-replika secara manual. Ini dapat membantu Anda memverifikasi kemampuan penanganan kesalahan atau logika pemulihan bencana klien. Untuk informasi lebih lanjut, lihat Alih Beban Kerja dari Node Master ke Node Replika Secara Manual.

★★★★★

Nonaktifkan perintah yang memakan waktu atau berisiko tinggi.

Dalam lingkungan produksi, penyalahgunaan perintah dapat menyebabkan masalah. Sebagai contoh, perintah FLUSHALL dapat menghapus semua data. Perintah KEYS dapat menyebabkan kemacetan jaringan. Untuk meningkatkan stabilitas dan efisiensi layanan, Anda dapat menonaktifkan perintah tertentu untuk meminimalkan risiko. Untuk informasi lebih lanjut, lihat Nonaktifkan Perintah Berisiko Tinggi.

★★★★☆

Tangani acara tertunda secepat mungkin.

Untuk meningkatkan pengalaman pengguna dan memberikan kinerja layanan yang lebih baik dan stabilitas, Alibaba Cloud kadang-kadang menghasilkan acara tertunda untuk meningkatkan perangkat keras dan perangkat lunak server tertentu atau mengganti fasilitas jaringan. Sebagai contoh, acara tertunda dihasilkan ketika versi minor database perlu diperbarui. Setelah Anda menerima notifikasi acara dari Alibaba Cloud, Anda dapat memeriksa dampak acara tersebut dan mengubah waktu yang dijadwalkan untuk acara tersebut agar sesuai dengan kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Lihat dan Kelola Acara Terjadwal.

★★★★☆

Konfigurasikan peringatan untuk metrik inti untuk memantau status instans Anda dengan lebih baik.

Konfigurasikan peringatan untuk metrik inti seperti pemanfaatan CPU, penggunaan memori, dan penggunaan bandwidth untuk memantau status instans Anda secara real-time. Untuk informasi lebih lanjut, lihat Pengaturan Peringatan.

★★★★☆

Gunakan fitur O&M yang disediakan oleh Tair untuk memeriksa status instans atau menyelesaikan masalah penggunaan sumber daya yang tidak normal secara berkala.

  • Gunakan Log Kueri Lambat untuk Menyelesaikan Masalah Timeout: Log kueri lambat membantu Anda menemukan kueri lambat dan alamat IP klien yang mengirim permintaan kueri. Log kueri lambat memberikan dasar yang andal untuk menangani masalah timeout.

  • Lihat Data Pemantauan Kinerja: Tair mendukung berbagai metrik kinerja. Metrik-metrik ini memungkinkan Anda memahami status layanan Redis dan menyelesaikan masalah secepat mungkin.

  • Buat Laporan Diagnostik: Laporan diagnostik membantu Anda mengevaluasi status instans Tair, termasuk tingkat kinerja, permintaan miring, dan log kueri lambat. Laporan ini juga membantu Anda mengidentifikasi anomali pada instans Tair.

  • Gunakan Fitur Analisis Kunci Offline: Anda dapat menggunakan fitur analisis kunci offline untuk mengidentifikasi kunci besar dalam instans Tair. Anda juga dapat mempelajari tentang penggunaan memori, distribusi, dan TTL dari kunci besar.

  • Gunakan Fitur Statistik Kunci Real-Time: Fitur statistik kunci real-time membantu Anda mengidentifikasi hotkeys dalam instans Tair dan memungkinkan Anda mengoptimalkan database lebih lanjut.

★★★☆☆

Aktifkan fitur log audit dan evaluasi log audit.

Setelah Anda mengaktifkan fitur log audit, statistik audit tentang operasi tulis dicatat. Tair juga memungkinkan Anda untuk menanyakan, menganalisis online, dan mengekspor log audit. Fitur-fitur ini membantu Anda memantau keamanan dan kinerja instans Tair Anda. Untuk informasi lebih lanjut, lihat Log Audit.

Penting

Setelah Anda mengaktifkan fitur log audit, kinerja instans Tair dapat menurun sebesar 5% hingga 15%. Penurunan kinerja aktual bervariasi berdasarkan jumlah operasi tulis atau operasi audit. Jika bisnis Anda mengharapkan banyak operasi tulis pada instans Tair, kami menyarankan Anda mengaktifkan fitur log audit hanya saat Anda melakukan operasi O&M, seperti pemecahan masalah. Ini membantu Anda mencegah penurunan kinerja.