Mengaktifkan cache Redis di instance yang dihosting pelanggan

Looker mempertahankan cache sebagai bagian dari setiap instance. Cache default Looker adalah solusi penyimpanan dalam cache 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 Anda sendiri, Anda dapat mengonfigurasi Looker secara opsional untuk menggunakan cache Redis yang dihosting secara terpisah. Cache Redis dapat memberikan manfaat berikut:

  • Pengambilan cache yang lebih baik — Peningkatan utama akan berupa 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.
  • Beban lebih sedikit — Selain itu, cache berada di tingkat terpisah dari instance Looker Anda, sehingga beban pada instance Looker menjadi lebih sedikit.
  • Skalabilitas — Penggunaan cache Redis juga memungkinkan cache diskalakan secara independen dari instance Looker Anda.

Persyaratan

Looker mendukung Redis versi 4.0.x dan 5.0.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 konfigurasi utama/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, selama 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 Bermigrasi ke enkripsi GCM AES-256.

Menetapkan variabel lingkungan untuk mengaktifkan cache Redis

Untuk mengaktifkan cache Redis, Anda harus menetapkan 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 sepenuhnya, ubah lingkungan dan skrip startup sesuai kebutuhan untuk menyertakan variabel lingkungan, lalu mulai semua node.

Untuk menonaktifkan 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 diaktifkan, cari entri di log Looker. Seharusnya 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