Halaman ini memberikan panduan tentang cara menggunakan Memorystore for Redis secara optimal. Halaman ini juga menunjukkan potensi masalah yang harus dihindari.
Untuk mengetahui daftar skenario pemecahan masalah, lihat Pemecahan masalah.
Ekspor RDB
Saat mengekspor cadangan RDB, gunakan panduan berikut:
- Mengekspor selama periode kecepatan tulis rendah.
- Jika mengekspor selama periode kecepatan tulis tinggi, turunkan konfigurasi
maxmemory
sementara menjadi 50% dari kapasitas instance untuk memberikan overhead yang memadai agar operasi berhasil.
Operasi yang membutuhkan banyak resource
Untuk instance Redis Tingkat Standar, operasi berikut menggunakan memori tambahan selama durasi operasi:
Upgrade versi, penskalaan, dan failover manual menggunakan memori tambahan (untuk instance Tingkat Standar) karena replikasi. Operasi ini mengikuti proses replikasi yang dijelaskan dalam Perilaku upgrade instance Tingkat Standar.
Operasi impor dan ekspor memerlukan memori tambahan karena proses Redis yang di-fork dan pengelolaan data copy-on-write yang terkait dengan operasi ini.
Untuk memitigasi kelemahan operasi yang membutuhkan banyak resource, Anda harus:
- Turunkan konfigurasi maxmemory menjadi 80% dari kapasitas instance selama durasi operasi. Hal ini memberikan overhead yang memadai untuk operasi yang berhasil.
- Pantau metrik rasio penggunaan memori sistem, dan pastikan metrik ini kurang dari 80% sebelum menjalankan salah satu operasi ini.
- Jalankan operasi ini selama periode traffic instance yang rendah (seperti semalam, atau selama akhir pekan, dsb.).
- Siapkan logika percobaan ulang dengan backoff eksponensial sebelum menjalankan operasi ini.
Operasi dan skenario yang memerlukan percobaan ulang koneksi
Operasi dan skenario berikut akan memutuskan koneksi jaringan antara jaringan Anda dan instance Redis:
- Upgrade versi
- Penskalaan ke atas/bawah
- Mengimpor
- Failover manual
- Pemeliharaan sistem
- Rotasi Certificate Authority untuk instance Redis yang mengaktifkan enkripsi dalam pengiriman
- Failover darurat
Operasi ini mengubah instance Anda, sehingga memerlukan pemutusan koneksi sementara. Anda harus memiliki logika percobaan ulang dengan backoff eksponensial sebelum menjalankan operasi ini sehingga aplikasi Anda otomatis terhubung kembali dan terus berfungsi secara normal.
Pemeliharaan rutin
Instance Memorystore for Redis menjalani pemeliharaan secara berkala. Untuk detail selengkapnya, lihat kebijakan pemeliharaan Memorystore for Redis.
Terapkan praktik terbaik berikut agar Anda siap untuk pemeliharaan rutin:
- Tetapkan masa pemeliharaan untuk waktu pelaksanaan update pemeliharaan.
- Jadwalkan masa pemeliharaan untuk waktu dengan traffic instance rendah dan overhead memori yang memadai. Untuk informasi selengkapnya, lihat Dampak update pemeliharaan.
- Aktifkan notifikasi masa pemeliharaan untuk memberi tahu Anda tentang pemeliharaan mendatang.
- Memiliki logika percobaan ulang dengan backoff eksponensial.
- Untuk instance Tingkat Standar, Anda dapat menyimulasikan peristiwa pemeliharaan menggunakan failover manual untuk melihat pengaruh failover yang disebabkan oleh pemeliharaan terhadap aplikasi Anda.
- Untuk instance Tingkat Dasar, Anda dapat menyimulasikan dampak update pemeliharaan dengan menskalakan instance ke ukuran yang lebih besar untuk sementara. Setelah mengamati dampaknya, Anda dapat menskalakan kembali ke ukuran asli.
Pengelolaan memori
Pengelolaan memori dapat menjadi tantangan karena fragmentasi memori yang sudah dikenal baik
yang terjadi dengan Redis open source. Sebaiknya turunkan konfigurasi maxmemory
untuk instance Anda agar Anda mendapatkan overhead jika tekanan memori tinggi.
Cara terbaik untuk memantau tekanan memori pada instance Memorystore Anda adalah dengan menggunakan metrik Rasio Penggunaan Memori Sistem. Untuk panduan mendetail selengkapnya tentang cara mengelola memori untuk Memorystore for Redis, lihat Praktik terbaik pengelolaan memori.
Mengelola koneksi yang tidak ada aktivitas
Seiring waktu, Anda mungkin melihat peningkatan jumlah koneksi ke instance
Memorystore jika koneksi tidak dihentikan dengan benar. Hal ini dapat
memiliki implikasi negatif terhadap performa, terutama jika Anda menggunakan enkripsi dalam pengiriman, yang memberlakukan batas koneksi maksimum
berdasarkan tingkat kapasitas Anda. Untuk mengurangi hal ini, sebaiknya gunakan
parameter konfigurasi Redis timeout
yang memungkinkan Anda menetapkan jumlah detik sebelum koneksi klien yang tidak ada aktivitasnya
dihentikan secara otomatis.
Nama resource Transparansi Akses
Data sensitif tidak boleh disimpan di Memorystore untuk nama resource Redis. Yang dimaksud dengan nama resource adalah nama instance Memorystore for Redis, dan metadata instance, seperti tag. Data yang disimpan dalam nama resource tidak dijamin akan dilindungi oleh Transparansi Akses Google Cloud, dan dapat bertentangan dengan persyaratan kepatuhan Transparansi Akses organisasi Anda.
Konektor Akses VPC Serverless diperlukan untuk beberapa lingkungan serverless
Beberapa lingkungan serverless memerlukan Konektor Akses VPC Serverless untuk terhubung ke Memorystore for Redis. Siapkan konektor Akses VPC Serverless untuk project Anda jika Anda ingin terhubung menggunakan salah satu lingkungan ini.
Jaringan
Sebaiknya gunakan mode koneksi akses layanan pribadi. Memorystore for Redis menggunakan dua mode koneksi: akses layanan pribadi dan peering langsung. Mode koneksi akses layanan pribadi membuat pengelolaan rentang IP lebih sederhana dan memungkinkan Anda menggunakan VPC Bersama jika mau.
Setelah Anda membuat instance, mode koneksi tidak dapat diubah.
Untuk detail selengkapnya, lihat Jaringan.
Pemantauan dan pemberitahuan
Sebaiknya gunakan pemantauan dan notifikasi karena keduanya memberi Anda sinyal utama tentang penggunaan memori instance Redis. Metrik ini juga memberi Anda insight tentang seberapa efisien instance Redis merespons permintaan cache yang masuk.
Anda harus menyiapkan pemberitahuan default berikut:
- Menetapkan pemberitahuan Cloud Monitoring untuk penggunaan memori
- Menetapkan pemberitahuan Cloud Monitoring untuk Rasio Penggunaan Memori Sistem
Praktik terbaik penggunaan CPU
Penggunaan perintah redis yang mahal secara tidak tepat menyebabkan latensi tinggi, tidak responsif, atau masalah konektivitas. Instance Tingkat Standar menyediakan ketersediaan tinggi selama pemulihan dari bencana dan mengandalkan replikasi asinkron antara node utama dan replika. Jika salah satu node memiliki pemrosesan perintah yang mahal yang memblokir thread utama Redis, replikasi dapat terpengaruh. Jika masalah terus berlanjut dan pemadaman layanan lokasi terjadi, data terbaru yang ditulis di lokasi pemadaman layanan mungkin tidak tersedia di lokasi lain.
Sebaiknya gunakan Cloud Monitoring
untuk menetapkan pemberitahuan untuk metrik Detik CPU Thread Utama
(redis.googleapis.com/stats/cpu_utilization_main_thread
) guna memastikan
penggunaan CPU tidak melebihi 0,9 detik untuk node utama dan 0,5 detik
untuk setiap node replika.
Jika instance Redis Anda melebihi nilai yang direkomendasikan, sebaiknya skalakan instance ke tingkat kapasitas yang lebih tinggi atau ikuti petunjuk pemecahan masalah untuk menghindari operasi yang intensif CPU.