Pengembangan
Ketahanan koneksi dan beban server
Saat mengembangkan aplikasi klien, pastikan untuk mempertimbangkan praktik terbaik yang relevan untuk ketahanan koneksi dan mengelola beban server.
Pertimbangkan lebih banyak kunci dan nilai yang lebih kecil
Azure Cache for Redis bekerja paling baik dengan nilai yang lebih kecil. Untuk menyebarkan data melalui beberapa kunci, pertimbangkan untuk membagi potongan data yang lebih besar ke potongan yang lebih kecil. Selengkapnya tentang ukuran nilai ideal, lihat artikel ini.
Permintaan atau ukuran respons besar
Permintaan/respons yang besar dapat menyebabkan waktu habis. Sebagai contoh, misalkan nilai batas waktu Anda yang dikonfigurasi pada klien Anda adalah 1 detik. Aplikasi Anda meminta dua kunci (misalnya, 'A' dan 'B') secara bersamaan (menggunakan koneksi jaringan fisik yang sama). Sebagian besar klien mendukung alur permintaan, di mana permintaan 'A' dan 'B' dikirim satu demi satu tanpa menunggu respons mereka. Server mengirim respons kembali dalam urutan yang sama. Jika respons 'A' besar, itu bisa memakan sebagian besar habisnya waktu untuk permintaan nanti.
Dalam contoh berikut, permintaan 'A' dan 'B' dikirim dengan cepat ke server. Server mulai mengirim respons 'A' dan 'B' dengan cepat. Karena waktu transfer data, respons 'B' harus menunggu waktu habis di balik respons 'A' meskipun server merespons dengan cepat.
|-------- 1 Second Timeout (A)----------|
|-Request A-|
|-------- 1 Second Timeout (B) ----------|
|-Request B-|
|- Read Response A --------|
|- Read Response B-| (**TIMEOUT**)
Permintaan/respons ini sulit diukur. Anda dapat membuat instrumen kode klien untuk melacak permintaan dan respons besar.
Resolusi untuk ukuran respons besar bervariasi tetapi mencakup:
- Optimalkan aplikasi Anda untuk sejumlah besar nilai kecil, bukan beberapa nilai besar.
- Solusi yang disukai adalah memecah data Anda menjadi nilai-nilai yang lebih kecil terkait.
- Lihat postingan Berapa kisaran ukuran nilai ideal untuk redis? Apakah 100 KB terlalu besar? untuk detail tentang mengapa nilai yang lebih kecil direkomendasikan.
- Tingkatkan ukuran komputer virtual (VM) Anda untuk mendapatkan kemampuan bandwidth yang lebih tinggi
- Lebih banyak bandwidth pada komputer virtual klien atau server Anda dapat mengurangi waktu transfer data untuk respons yang lebih besar.
- Bandingkan penggunaan jaringan Anda saat ini pada kedua mesin dengan batas ukuran komputer virtual Anda saat ini. Lebih banyak bandwidth hanya pada server atau hanya pada klien mungkin tidak cukup.
- Tingkatkan jumlah objek koneksi yang digunakan aplikasi Anda.
- Gunakan pendekatan round-robin untuk membuat permintaan atas objek koneksi yang berbeda.
Distribusi kunci
Jika Anda berencana menggunakan pengklusteran Redis, baca dulu Praktik Terbaik Pengklusteran Redis dengan Kunci.
Gunakan alur
Cobalah untuk memilih klien Redis yang mendukung Redis pipelining. Pipelining membantu memanfaatkan jaringan secara efisien dan mendapatkan throughput terbaik.
Hindari operasi yang mahal
Beberapa operasi Redis, seperti perintah KEYS, mahal dan harus dihindari. Untuk beberapa pertimbangan seputar perintah yang berjalan lama, lihat perintah yang berjalan lama.
Memilih tingkat yang sesuai
Gunakan tingkat Standar, Premium, Enterprise, atau Enterprise Flash untuk sistem produksi. Jangan gunakan tingkat Dasar dalam produksi. Tingkat Dasar adalah sistem simpul tunggal tanpa replikasi data dan tanpa SLA. Selain itu, gunakan setidaknya cache C1. C0 {i>cache
- Berbagi inti CPU
- menggunakan sedikit memori
- rentan terhadap masalah tetangga yang bising
Kami merekomendasikan pengujian performa untuk memilih tingkat yang tepat dan memvalidasi pengaturan koneksi. Selengkapnya, lihat Pengujian kinerja.
Klien di wilayah yang sama dengan cache
Temukan instans cache dan aplikasi Anda di wilayah yang sama. Menyambungkan ke cache di wilayah yang berbeda dapat secara signifikan meningkatkan latensi dan mengurangi keandalan.
Meskipun Anda dapat terhubung dari luar Azure, tidak disarankan, terutama saat menggunakan Redis sebagai cache. Jika Anda menggunakan server Redis hanya sebagai penyimpanan kunci/nilai, latensi mungkin bukan perhatian utama.
Mengandalkan nama host bukan alamat IP publik
Alamat IP publik yang ditetapkan ke cache Anda dapat berubah sebagai hasil dari operasi skala atau peningkatan backend. Sebaiknya andalkan nama host, bukan alamat IP publik eksplisit. Berikut adalah formulir yang direkomendasikan untuk berbagai tingkatan:
Tingkat | Formulir |
---|---|
Dasar, Standar, Premium | <cachename>.redis.cache.windows.net |
Enterprise, Enterprise Flash | <DNS name>.<Azure region>.redisenterprise.cache.azure.net. |
Pilih versi Redis yang sesuai
Versi default Redis yang digunakan saat membuat cache dapat berubah dari waktu ke waktu. Azure Cache for Redis mungkin mengadopsi versi baru saat versi baru Redis sumber terbuka dirilis. Jika Anda memerlukan versi Redis tertentu untuk aplikasi Anda, sebaiknya pilih versi Redis secara eksplisit saat Anda membuat cache.
Panduan khusus untuk tingkat Enterprise
Karena tingkat Enterprise dan Enterprise Flash dibangun di Redis Enterprise daripada Redis sumber terbuka, ada beberapa perbedaan dalam praktik terbaik pengembangan. Untuk informasi selengkapnya, lihat Praktik Terbaik untuk tingkat Enterprise dan Enterprise Flash.
Menggunakan enkripsi TLS (Keamanan Lapisan Transportasi)
Azure Cache for Redis memerlukan komunikasi terenkripsi TLS secara {i>default.
Jika pustaka atau alat klien Anda tidak mendukung TLS (Keamanan Lapisan Transportasi), maka mengaktifkan koneksi tidak terenkripsi dimungkinkan melalui portal Microsoft Azure atau API manajemen. Jika koneksi terenkripsi tidak memungkinkan, sebaiknya tempatkan {i>cachetabel ini.
Perubahan Sertifikat Azure TLS
Microsoft memperbarui layanan Azure untuk menggunakan sertifikat TLS dari kumpulan Certificate Authorities (CA) yang berbeda. Perubahan ini diluncurkan secara bertahap mulai tanggal 13 Agustus 2020 hingga 26 Oktober 2020 (estimasi). Azure melakukan perubahan ini karena sertifikat CA saat ini tidak memenuhi salah satu persyaratan CA/Forum Browser Baseline. Masalah ini dilaporkan pada tanggal 1 Juli 2020 dan berlaku untuk beberapa penyedia Infrastruktur Utama Publik (PKI) yang populer di seluruh dunia. Sebagian besar sertifikat TLS yang digunakan oleh layanan Azure saat ini berasal dari Baltimore CyberTrust Root PKI. Layanan Azure Cache for Redis terus dirantai ke Baltimore CyberTrust Root. Namun, sertifikat server TLS-nya akan diterbitkan oleh Intermediate Certificate Authorities (IPA) yang baru mulai tanggal 12 Oktober 2020.
Catatan
Perubahan ini terbatas pada layanan di wilayah Azure umum. Ini tidak termasuk cloud pemerintah (misalnya, Tiongkok) atau independen.
Apakah perubahan ini memengaruhi saya?
Sebagian besar pelanggan Azure Cache for Redis tidak terpengaruh oleh perubahan tersebut. Aplikasi Anda mungkin terpengaruh jika secara eksplisit menentukan daftar sertifikat yang dapat diterima, praktik yang dikenal sebagai penyematan sertifikat. Jika disematkan pada sertifikat menengah atau leaf, bukan Baltimore CyberTrust Root, Anda harus segera mengambil tindakan untuk mengubah konfigurasi sertifikat.
Azure Cache for Redis tidak mendukung stapling OCSP.
Tabel berikut ini menyediakan informasi tentang sertifikat yang sedang diluncurkan. Bergantung pada sertifikat mana yang digunakan aplikasi, Anda mungkin perlu memperbaruinya untuk mencegah hilangnya konektivitas ke instans Azure Cache for Redis Anda.
Tipe CA | Saat ini | Pascapeluncuran (12 Okt 2020) | Perbuatan |
---|---|---|---|
Akar | Thumbprint: d4de20d05e66fc53fe1a50882c78db2852cae474 Kedaluwarsa: Senin, 12 Mei 2025, 16:59:00 Nama Subjek: CN = Baltimore CyberTrust Root OU = CyberTrust O = Baltimore C = IE |
Tidak berubah | Tidak |
Menengah | Thumbprint: CN = Microsoft IT TLS CA 1 Thumbprint: 417e225037fbfaa4f95761d5ae729e1aea7e3a42 CN = Microsoft IT TLS CA 2 Thumbprint: 54d9d20239080c32316ed9ff980a48988f4adf2d CN = Microsoft IT TLS CA 4 Thumbprint: 8a38755d0996823fe8fa3116a277ce446eac4e99 CN = Microsoft IT TLS CA 5 Thumbprint: Ad898ac73df333eb60ac1f5fc6c4b2219ddb79b7 Kedaluwarsa: Jumat, 20 Mei 2024 05:52:38 Nama Subjek: OU = Microsoft IT O = Microsoft Corporation L = Redmond S = Washington C = AS |
Thumbprint: CN = Microsoft RSA TLS CA 01 Thumbprint: 703d7a8f0ebf55aaa59f98eaf4a206004eb2516a CN = Microsoft RSA TLS CA 02 Thumbprint: b0c2d2d13cdd56cdaa6ab6e2c04440be4a429c75 Kedaluwarsa: Selasa, 8 Oktober 2024 12:00:00; Nama Subjek: O = Microsoft Corporation C = AS |
Wajib |
Tindakan apa yang harus saya ambil?
Jika aplikasi Anda menggunakan penyimpanan sertifikat sistem operasi atau menyematkan root Baltimore antara lain, tidak ada tindakan yang diperlukan.
Jika aplikasi Anda menyematkan sertifikat TLS menengah atau leaf, kami sarankan Anda menyematkan root berikut:
Sertifikat | Thumbprint |
---|---|
Baltimore Root CA | d4de20d05e66fc53fe1a50882c78db2852cae474 |
Microsoft RSA Root Certificate Authority 2017 | 73a5e64a3bff8316ff0edccc618a906e4eae4d74 |
Digicert Global Root G2 | df3c24f9bfd666761b268073fe06d1cc8d4f82a4 |
Tip
Baik sertifikat menengah maupun leaf diperkirakan akan sering berubah. Kami menyarankan untuk tidak mengambil ketergantungan pada sertifikat. Sebaliknya sematkan aplikasi Anda ke sertifikat akar karena penyediaan lebih jarang.
Untuk terus menyematkan sertifikat menengah, tambahkan yang berikut ini ke daftar sertifikat menengah yang disematkan, yang mencakup beberapa sertifikat tambahan untuk meminimalkan perubahan pada masa mendatang:
Nama umum CA | Thumbprint |
---|---|
Microsoft RSA TLS CA 01 | 703d7a8f0ebf55aaa59f98eaf4a206004eb2516a |
Microsoft RSA TLS CA 02 | b0c2d2d13cdd56cdaa6ab6e2c04440be4a429c75 |
Microsoft Azure TLS Issuing CA 01 | 2f2877c5d778c31e0f29c7e371df5471bd673173 |
Microsoft Azure TLS Issuing CA 02 | e7eea674ca718e3befd90858e09f8372ad0ae2aa |
Microsoft Azure TLS Issuing CA 05 | 6c3af02e7f269aa73afd0eff2a88a4a1f04ed1e5 |
Microsoft Azure TLS Issuing CA 06 | 30e01761ab97e59a06b41ef20af6f2de7ef4f7b0 |
Jika aplikasi Anda memvalidasi sertifikat dalam kode, Anda harus memodifikasinya untuk mengenali properti --- misalnya, Penerbit, Thumbprint --- dari sertifikat yang baru disematkan. Verifikasi tambahan ini harus mencakup semua sertifikat yang disematkan agar lebih siap untuk menghadapi masa depan.
Panduan khusus pustaka klien
Untuk informasi selengkapnya, lihat Pustaka klien.