Mengaktifkan cache Redis di instance yang dihosting pelanggan

Looker mempertahankan cache sebagai bagian dari setiap instance. Cache default Looker adalah solusi caching kustom yang didasarkan pada beberapa lapisan: dalam memori, disk lokal, dan disk jarak jauh. Database internal Looker digunakan sebagai indeks yang mengidentifikasi lokasi objek yang di-cache dalam sistem.

Jika menghosting instance Looker sendiri, Anda dapat secara opsional mengonfigurasi Looker untuk menggunakan cache Redis yang dihosting secara terpisah. Cache Redis dapat memberikan manfaat berikut:

  • Pengambilan cache yang lebih baik — Peningkatan utama akan terjadi pada waktu pengambilan cache yang konsisten. Seiring bertambahnya jumlah node dalam cluster Looker, komunikasi antar-node dapat menurunkan performa cache. Arsitektur cache Redis baru menggabungkan cache, yang menghasilkan waktu pengambilan cache yang konsisten, berapa pun ukuran cluster Looker Anda.
  • Lebih sedikit beban — Selain itu, cache berada di tingkat terpisah dari instance Looker Anda, sehingga mengurangi beban pada instance Looker.
  • Skalabilitas — Penggunaan cache Redis juga memungkinkan cache diskalakan secara independen dari instance Looker Anda.

Persyaratan

Looker mendukung Redis versi 4.0.x, 5.0.x, dan 7.2.x. Untuk menggunakan cache Redis dengan Looker, instance Redis Anda harus memenuhi persyaratan berikut:

  • Instance Redis harus dapat diakses dari instance Looker.
  • Instance Redis tidak boleh berupa cluster. Namun, Anda dapat menggunakan instance replika untuk ketersediaan tinggi.
  • Ukuran cache Redis harus kira-kira sama dengan ukuran cache Looker Anda. Secara default, cache Looker adalah 2 GB per node; jadi, jika Anda memiliki cluster Looker tiga node, cache Redis 6 GB direkomendasikan.
  • Konfigurasi maxmemory-policy Redis harus ditetapkan ke volatile-lru.
  • Anda harus menonaktifkan autentikasi Redis. Semua data yang disimpan di Redis dienkripsi di instance Looker sebelum dikirim ke server Redis.
  • Anda dapat menggunakan opsi Redis yang dihosting di AWS ElastiCache atau Google Memorystore, asalkan bukan konfigurasi cluster Redis.

Selain itu, sistem enkripsi GCM Looker diperlukan untuk menggunakan Redis di Looker. Anda harus mengupdate enkripsi untuk instance yang menggunakan enkripsi lama sebelum mengaktifkan Redis. Jika Anda mencoba mengaktifkan Redis tanpa enkripsi GCM, Looker akan gagal dimulai dengan pesan error yang mirip dengan berikut ini:

2020-01-23 10:28:44.253 -0800 [ERROR|007e4|cache] :: Must enable GCM encryption to use Redis caching

Untuk mengetahui petunjuk tentang cara mengupgrade dari enkripsi lama ke enkripsi GCM, lihat halaman dokumentasi Memigrasikan ke enkripsi GCM AES-256.

Menetapkan variabel lingkungan untuk mengaktifkan cache Redis

Untuk mengaktifkan cache Redis, Anda harus menyetel variabel lingkungan LOOKER_REDIS_CACHE_DISCOVERY agar mengarah ke URL koneksi Redis, lalu memulai ulang instance Looker sepenuhnya, termasuk semua node dalam cluster. Sebaiknya matikan server Anda sepenuhnya, ubah skrip lingkungan dan startup sesuai kebutuhan untuk menyertakan variabel lingkungan, lalu mulai semua node.

Untuk mematikan Looker, jalankan perintah berikut di setiap node:

cd looker
./looker stop

Kemudian, misalnya, jika Anda memiliki instance Redis lokal di host yang sama pada port default, tetapkan variabel lingkungan LOOKER_REDIS_CACHE_DISCOVERY sebagai berikut:

export LOOKER_REDIS_CACHE_DISCOVERY=redis://localhost:6379

Kemudian, mulai ulang Looker:

./looker start

Memverifikasi bahwa cache Redis diaktifkan

Untuk menentukan apakah cache Redis Anda diaktifkan, cari entri di log Looker Anda. Akan ada entri log yang mirip dengan berikut ini:

2021-06-11 16:54:41.532 +0000 [INFO|007e4|RedissonClientPool] :: Creating client for redis://localhost:6379/
...
2021-06-11 16:54:42.802 +0000 [INFO|007e4|cache] :: Creating render_cache DataShelf: redis