Bagikan melalui


Pengembangan dengan Azure Managed Redis

Dalam artikel ini, kita membahas cara mengembangkan kode untuk Azure Managed Redis.

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 Managed Redis berfungsi 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.
  • 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 melalui berbagai objek koneksi.

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.

Pilih tingkat yang sesuai

Azure Managed Redis menawarkan tingkat Memori Yang Dioptimalkan, Seimbang, Komputasi Dioptimalkan, dan Dioptimalkan Flash. Untuk informasi selengkapnya tentang cara memilih tingkatan, lihat Cara menskalakan. Kami merekomendasikan pengujian performa untuk memilih tingkat yang tepat dan memvalidasi pengaturan koneksi. Selengkapnya, lihat Pengujian kinerja.

Pilih mode ketersediaan yang sesuai

Azure Managed Redis menawarkan opsi untuk mengaktifkan atau menonaktifkan konfigurasi ketersediaan tinggi. Saat mode ketersediaan tinggi dinonaktifkan, data instans AMR Anda tidak direplikasi, dan instans Redis Anda tidak tersedia selama pemeliharaan. Semua data dalam instans AMR hilang selama pemeliharaan yang direncanakan atau tidak direncanakan. Sebaiknya nonaktifkan ketersediaan tinggi hanya untuk beban kerja pengembangan atau pengujian Anda. Performa instans Redis dengan ketersediaan tinggi juga bisa lebih rendah karena kurangnya replikasi data yang merupakan beban distribusi penting antara shard data primer dan replika.

Klien di wilayah yang sama dengan instans Redis

Temukan instans Redis dan aplikasi Anda di wilayah yang sama. Menyambungkan ke Redis 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 untuk mempercepat performa aplikasi atau database Anda. 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 instans AMR Anda dapat berubah sebagai akibat dari operasi skala atau peningkatan backend. Sebaiknya andalkan nama host, bukan alamat IP publik eksplisit.

Gunakan enkripsi TLS

Azure Managed Redis memerlukan komunikasi terenkripsi TLS secara default. TLS versi 1.2 dan 1.3 saat ini didukung. Jika pustaka atau alat klien Anda tidak mendukung TLS, mengaktifkan koneksi yang tidak terenkripsi dimungkinkan.

Memantau penggunaan memori, metrik penggunaan CPU, koneksi klien, dan bandwidth jaringan

Saat menggunakan instans Azure Managed Redis dalam produksi, sebaiknya atur pemberitahuan untuk Persentase Memori Yang Digunakan, metrik CPU , Klien Yang Terhubung. Jika metrik ini secara konsisten di atas 75%, pertimbangkan untuk menskalakan instans Anda ke memori yang lebih besar atau tingkat throughput yang lebih baik. Untuk detail selengkapnya, lihat kapan harus menskalakan.

Pertimbangkan untuk mengaktifkan Persistensi Data atau Pencadangan Data

Redis dirancang untuk data ephemeral secara default, yang berarti bahwa dalam kasus yang jarang terjadi, data Anda dapat hilang karena berbagai keadaan seperti pemeliharaan atau pemadaman. Jika aplikasi Anda sensitif terhadap kehilangan data, sebaiknya aktifkan persistensi data atau pencadangan data berkala menggunakan operasi ekspor data.

Fitur persistensi data dirancang untuk secara otomatis menyediakan titik pemulihan cepat untuk data saat cache tidak berfungsi. Pemulihan cepat dimungkinkan dengan menyimpan file RDB atau AOF dalam disk terkelola yang dipasang ke instans cache. File persistensi pada disk tidak dapat diakses oleh pengguna atau tidak dapat digunakan oleh instans AMR lainnya.

Banyak pelanggan ingin menggunakan persistensi untuk mengambil cadangan data secara berkala di cache mereka. Kami tidak menyarankan Agar Anda menggunakan persistensi data dengan cara ini. Sebagai gantinya , gunakan fitur impor/ekspor . Anda dapat mengekspor salinan data dalam format RDB langsung ke akun penyimpanan yang Anda pilih dan memicu ekspor data sesering yang Anda butuhkan. Data yang diekspor ini kemudian dapat diimpor ke instans Redis apa pun. Ekspor dapat dipicu baik dari portal atau dengan menggunakan alat CLI, PowerShell, atau SDK.

Panduan khusus pustaka klien

Untuk informasi selengkapnya, lihat Pustaka Klien Azure Managed Redis