Praktik terbaik untuk Memorystore for Redis

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.

Mengekspor RDB

Saat mengekspor cadangan RDB, gunakan panduan berikut:

Operasi yang memerlukan 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 kekurangan operasi yang intensif resource, Anda harus:

Operasi dan skenario yang memerlukan percobaan ulang koneksi

Operasi dan skenario berikut akan menghentikan koneksi jaringan antara jaringan Anda dan instance Redis:

Operasi ini mengubah instance Anda, sehingga memerlukan jeda koneksi sementara. Anda harus memiliki logika percobaan ulang dengan penundaan eksponensial sebelum menjalankan operasi ini agar aplikasi Anda otomatis terhubung kembali dan terus berfungsi secara normal.

Pemeliharaan rutin

Instance Memorystore for Redis menjalani pemeliharaan secara berkala. Untuk mengetahui detail selengkapnya, lihat kebijakan pemeliharaan Memorystore for Redis.

Terapkan praktik terbaik berikut agar Anda siap menghadapi pemeliharaan rutin:

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 guna memberikan ruang tambahan jika terjadi tekanan memori yang tinggi.

Cara terbaik untuk memantau tekanan memori pada instance Memorystore adalah dengan menggunakan metrik Rasio Penggunaan Memori Sistem. Untuk panduan mendetail tentang cara mengelola memori untuk Memorystore for Redis, lihat Praktik terbaik pengelolaan memori.

Mengelola koneksi yang tidak ada aktivitas

Seiring waktu, Anda mungkin melihat jumlah koneksi ke instance Memorystore meningkat jika koneksi tidak dihentikan dengan benar. Hal ini dapat berdampak negatif pada performa, terutama jika Anda menggunakan enkripsi dalam transit, yang menerapkan batas koneksi maksimum berdasarkan tingkat kapasitas Anda. Untuk mengurangi hal ini, sebaiknya gunakan timeout parameter konfigurasi Redis yang memungkinkan Anda menetapkan jumlah detik sebelum koneksi klien yang tidak aktif dihentikan secara otomatis.

Nama resource Transparansi Akses

Data sensitif tidak boleh disimpan dalam nama resource Memorystore for 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 dilindungi oleh Google Cloud Transparansi Akses, 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 akses layanan pribadi mode koneksi. Memorystore for Redis menggunakan dua mode koneksi: akses layanan pribadi dan peering langsung. Mode koneksi akses layanan pribadi menyederhanakan pengelolaan rentang IP dan memungkinkan Anda menggunakan VPC Bersama jika ingin.

Setelah Anda membuat instance, mode koneksi tidak dapat diubah.

Untuk mengetahui detail selengkapnya, lihat Networking.

Pemantauan dan pemberitahuan

Sebaiknya gunakan pemantauan dan pemberitahuan karena keduanya memberikan sinyal utama tentang penggunaan memori instance Redis Anda. Metrik ini juga memberi Anda insight tentang seberapa efisien instance Redis Anda merespons permintaan cache yang masuk.

Anda harus menyiapkan pemberitahuan default berikut:

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 dan memblokir thread utama Redis, replikasi dapat terpengaruh. Jika masalah berlanjut dan terjadi pemadaman layanan di suatu lokasi, data terbaru yang ditulis di lokasi pemadaman layanan mungkin tidak tersedia di lokasi lain.

Sebaiknya gunakan Cloud Monitoring untuk menyetel pemberitahuan untuk metrik Detik CPU Thread Utama (redis.googleapis.com/stats/cpu_utilization_main_thread) guna memastikan penggunaan CPU tidak melebihi 0,8 detik untuk node utama atau 0,5 detik untuk setiap node replika, saat replika ditetapkan sebagai replika baca.

Jika instance Redis Anda melampaui nilai yang direkomendasikan, sebaiknya menskalakan instance ke tingkat kapasitas yang lebih tinggi atau mengikuti petunjuk pemecahan masalah untuk menghindari operasi yang intensif CPU.

Perintah yang memerlukan banyak resource

Sebaiknya hindari penggunaan perintah Redis yang membutuhkan banyak resource. Penggunaan perintah ini dapat menyebabkan masalah performa berikut:

  • Latensi tinggi dan waktu tunggu klien
  • Tekanan memori yang disebabkan oleh perintah yang meningkatkan penggunaan memori
  • Kehilangan data selama replikasi dan sinkronisasi node karena thread utama Redis diblokir
  • Health check yang tidak berjalan, kemampuan pengamatan, dan replikasi