Sebelum memulai, pastikan aplikasi Anda tidak melebihi kuota Memorystore for Redis.
Waktu penggunaan cache memori
Data sesi, preferensi pengguna, dan data lain yang ditampilkan oleh kueri untuk halaman web adalah pilihan yang baik untuk disimpan ke dalam cache. Secara umum, jika kueri yang sering dijalankan menampilkan serangkaian hasil yang tidak harus segera muncul di aplikasi, Anda dapat menyimpan hasilnya ke dalam cache. Permintaan berikutnya dapat memeriksa cache dan hanya membuat kueri database jika hasilnya tidak ada atau sudah tidak berlaku.
Jika Anda hanya menyimpan nilai di Memorystore tanpa mencadangkannya di penyimpanan persisten, pastikan aplikasi Anda memiliki perilaku yang dapat diterima jika nilainya sudah tidak berlaku dan dihapus dari cache. Misalnya, sesi akan gagal berfungsi jika secara tiba-tiba data sesi pengguna tidak tersedia. Oleh karena itu, data tersebut mungkin harus disimpan dalam database selain Memorystore.
Memahami izin Memorystore
Setiap interaksi dengan layanan Google Cloud perlu diotorisasi. Misalnya, untuk berinteraksi dengan database Redis yang dihosting oleh Memorystore, aplikasi Anda harus menyediakan kredensial akun yang memiliki otorisasi untuk mengakses Memorystore.
Secara default, aplikasi Anda akan memberikan kredensial akun layanan default App Engine, yang memiliki otorisasi untuk mengakses database dalam project yang sama dengan aplikasi Anda.
Jika salah satu kondisi berikut terpenuhi, Anda harus menggunakan teknik autentikasi alternatif yang secara eksplisit memberikan kredensial:
Aplikasi Anda dan database Memorystore berada di project Google Cloud yang berbeda.
Anda telah mengubah peran yang ditetapkan ke akun layanan App Engine default.
Untuk mengetahui informasi tentang teknik autentikasi alternatif, lihat Menyiapkan Autentikasi untuk Aplikasi Produksi Server ke Server.
Ringkasan penggunaan Memorystore
Untuk menggunakan Memorystore di aplikasi Anda:
Siapkan Memorystore for Redis, yang mengharuskan Anda untuk membuat instance Redis pada Memorystore dan membuat Akses VPC Serverless yang digunakan aplikasi Anda untuk berkomunikasi dengan instance Redis. Urutan pembuatan dua entity independen ini tidak wajib diikuti dan dapat disiapkan dalam urutan apa pun. Petunjuk dalam panduan ini menunjukkan penyiapan Akses VPC Serverless terlebih dahulu.
Instal library klien untuk Redis dan gunakan perintah Redis untuk menyimpan data ke dalam cache.
Memorystore for Redis kompatibel dengan library klien apa pun untuk Redis. Panduan ini menjelaskan penggunaan library klien Jedis untuk mengirim perintah Redis dari aplikasi Anda. Untuk mengetahui detail selengkapnya tentang cara menggunakan Jedis, lihat wiki Jedis.
Menyiapkan Memorystore for Redis
Untuk menyiapkan Memorystore for Redis:
Hubungkan App Engine Anda ke jaringan VPC. Aplikasi Anda hanya dapat berkomunikasi dengan Memorystore melalui konektor VPC.
Pastikan untuk menambahkan informasi koneksi VPC ke file
app.yaml
Anda, seperti yang dijelaskan dalam Mengonfigurasi aplikasi menggunakan konektor.Catat alamat IP dan nomor port instance Redis yang Anda buat. Anda akan menggunakan informasi ini saat membuat klien Redis dalam kode.
Buat instance Redis di Memorystore.
Saat diminta memilih region untuk instance Redis, pilih region yang sama dengan lokasi aplikasi App Engine Anda berada.
Menginstal dependensi
Agar library klien Jedis tersedia untuk aplikasi Anda saat dijalankan di App Engine, tambahkan library ke dependensi aplikasi Anda. Misalnya, jika Anda menggunakan Maven, tambahkan dependensi berikut di filepom.xml
Anda:
Membuat klien Redis
Untuk berinteraksi dengan database Redis, kode Anda perlu membuat klien Redis untuk mengelola koneksi ke database Redis. Bagian berikut menjelaskan cara pembuatan klien Redis menggunakan library klien Jedis.
Menentukan variabel lingkungan
Library klien Jedis menggunakan dua variabel lingkungan untuk menyusun URL bagi database Redis Anda:
- Variabel untuk mengidentifikasi alamat IP database Redis yang Anda buat di Memorystore.
- Variabel untuk mengidentifikasi nomor port database Redis yang Anda buat di Memorystore.
Sebaiknya tentukan variabel ini dalam file app.yaml
aplikasi, bukan menentukannya secara langsung di dalam kode. Cara ini memudahkan Anda untuk menjalankan aplikasi di
lingkungan yang berbeda, seperti lingkungan lokal dan App Engine.
app.yaml
Anda:
env_variables:
redis.host: '10.112.12.112'
redis.port: '6379'
Mengimpor Jedis dan membuat klien
Saat menggunakan library Jedis, sebaiknya buat JedisPool, lalu gunakan kumpulan tersebut untuk membuat klien. Baris kode berikut menggunakan variabel lingkunganredis.host
dan redis.port
yang Anda tentukan sebelumnya untuk membuat kumpulan:
Untuk membuat klien dari kumpulan tersebut, gunakan metode JedisPool.getResource()
.
Contoh:
Menggunakan perintah Redis untuk menyimpan dan mengambil data dalam cache
Meskipun database Memorystore Redis mendukung sebagian besar perintah Redis, Anda hanya perlu menggunakan beberapa perintah untuk menyimpan dan mengambil data dari cache. Tabel berikut menampilkan rekomendasi perintah Redis yang dapat Anda gunakan untuk menyimpan data ke dalam cache. Untuk mengetahui cara memanggil perintah tersebut dari aplikasi Anda, lihat dokumentasi library klien.
Tugas | Perintah Redis |
---|---|
Buat entri dalam cache data dan tetapkan waktu habis masa berlaku untuk entri |
SETNX MSETNX |
Mengambil data dari cache | GET MGET |
Mengganti nilai cache yang ada | SETEL MSET |
Menambahkan atau mengurangi nilai cache numerik | INCR INCRBY DECR DECRBY |
Menghapus entri dari cache | DEL UNLINK |
Mendukung interaksi serentak dengan cache | Lihat detail tentang transaksi Redis. |
Menguji update Anda
Saat Anda menguji aplikasi secara lokal, pertimbangkan untuk menjalankan instance lokal Redis gun menghindari interaksi dengan data produksi (Memorystore tidak menyediakan emulator). Untuk menginstal dan menjalankan Redis secara lokal, ikuti petunjuk dalam dokumentasi Redis. Perhatikan bahwa saat ini menjalankan Redis secara lokal di Windows tidak dapat dilakukan.
Men-deploy aplikasi Anda
Setelah aplikasi Anda berjalan di server pengembangan lokal tanpa error:
Jika aplikasi berjalan tanpa error, gunakan pemisahan traffic untuk meningkatkan traffic secara perlahan untuk aplikasi yang telah diupdate. Pantau aplikasi dengan cermat untuk menemukan masalah database apa pun sebelum mengarahkan lebih banyak traffic ke aplikasi yang telah diupdate.