Ketersediaan tinggi untuk Memorystore for Redis

Halaman ini menjelaskan Ketersediaan Tinggi (HA) untuk instance Memorystore for Redis dalam Tingkat Standar.

Ringkasan

Paket Standar melindungi instance Redis dari kegagalan umum dengan mereplikasi data ke satu atau beberapa replika, dan dengan menyediakan failover otomatis yang cepat ke replika.

Tingkat Standar disediakan dengan satu replika utama dan satu atau beberapa replika. Instance Tingkat Standar yang menonaktifkan readReplicaMode memiliki satu replika yang tidak dibaca. Instance Tingkat Standar yang telah mengaktifkan readReplicaMode memiliki satu hingga lima replika baca. Untuk menentukan apakah readReplicaMode diaktifkan, lihat Melihat informasi replika baca.

Memorystore for Redis memberikan ketersediaan tinggi dengan mereplikasi primer Redis ke satu atau beberapa replika. Perubahan yang dibuat pada data di primer disalin ke replika menggunakan protokol replikasi asinkron Redis. Karena sifat replikasi asinkron, replika dapat tertinggal di belakang replika utama, bergantung pada kecepatan operasi tulis pada replika utama.

Jika instance utama gagal, instance akan otomatis beralih ke replika. Untuk instance yang dikonfigurasi dengan lebih dari satu replika, instance akan otomatis menggagalkan replika dengan jeda replikasi paling sedikit yang responsif.

Jika instance dikonfigurasi hanya dengan satu replika non-baca, semua koneksi aplikasi akan diarahkan ke endpoint utama. Jika instance dikonfigurasi menggunakan replika baca, aplikasi juga dapat memanfaatkan endpoint baca untuk mendistribusikan kueri baca di semua replika.

Saat failover dipicu

Failover terjadi saat primer Redis gagal. Selama failover, endpoint primer dan baca otomatis dialihkan ke replika utama dan replikas baru. Semua koneksi ke endpoint utama dihapus dan koneksi endpoint baca ke replika baca yang dipromosikan juga akan dihapus.

Pengaruh failover terhadap aplikasi

Jika koneksi utama gagal ke replika, koneksi yang ada ke endpoint primer instance akan dihapus. Instance tidak tersedia selama beberapa detik saat instance utama yang baru terhubung kembali. Saat terhubung kembali, aplikasi Anda akan otomatis dialihkan ke primer baru menggunakan string koneksi atau alamat IP yang sama. Anda tidak perlu mengupdate aplikasi setelah failover.

Selama failover, jika ada koneksi ke endpoint baca, koneksi ke replika yang sedang dipromosikan ke utama akan dihapus. Koneksi ke replika lain akan terus dilayani selama failover. Setelah failover selesai dan replika baru tersedia, koneksi akan dialihkan ke replika baru.

Mencoba kembali koneksi instance setelah failover

Saat failover terjadi, semua koneksi dari endpoint utama akan dihapus, dan, bergantung pada jumlah replika, beberapa koneksi baca akan dihentikan.

Karena terputusnya koneksi ini, aplikasi Anda perlu mencoba lagi untuk menghubungkan kembali. Logika percobaan ulang harus menggunakan backoff eksponensial untuk memastikan bahwa Anda tidak membebani instance dengan terlalu banyak permintaan percobaan ulang. Selain menyertakan logika percobaan ulang, Anda harus menguji pengaruh failover terhadap aplikasi dengan menguji dengan failover manual.

Sebagian besar klien Redis memiliki kemampuan mencoba ulang bawaan yang harus Anda manfaatkan jika koneksi terputus karena failover.

Failover terjadi dalam skenario berikut:

Jika Anda menerapkan logika mencoba ulang dalam aplikasi untuk menangani koneksi yang terputus akibat failover, instance Anda tidak akan mengalami dampak performa yang signifikan. Biasanya, masalah hanya muncul akibat tidak adanya logika percobaan ulang.

Cara melihat status ketersediaan tinggi

Anda dapat melihat metrik ketersediaan tinggi untuk instance Redis menggunakan Cloud Monitoring. Untuk mengetahui informasi tentang metrik yang disediakan Cloud Monitoring untuk Memorystore for Redis, lihat Memantau Instance Redis dan Memantau metrik.

Untuk mengetahui informasi selengkapnya, baca dokumentasi Cloud Monitoring.

Untuk melihat status replikasi native yang disediakan Redis, Anda dapat menerbitkan perintah Redis INFO ke instance Memorystore for Redis.