Mengaktifkan cache Redis pada instance yang dihosting pelanggan

Looker menyimpan 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 memilih untuk mengonfigurasi Looker agar menggunakan cache Redis yang dihosting secara terpisah. Cache Redis dapat memberikan manfaat berikut:

  • Pengambilan cache yang lebih baik — Peningkatan utamanya adalah pada waktu pengambilan cache yang konsisten. Saat jumlah node di cluster Looker meningkat, komunikasi antar-node dapat menurunkan performa cache. Arsitektur cache Redis yang 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 terpisah 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; tetapi, Anda dapat menggunakan konfigurasi primer/replika untuk ketersediaan tinggi.
  • Ukuran cache Redis harus kurang lebih sama dengan ukuran cache Looker Anda. Secara default, cache Looker adalah 2 GB per node. Jadi, jika Anda memiliki cluster Looker tiga node, sebaiknya gunakan cache Redis sebesar 6 GB.
  • Konfigurasi maxmemory-policy Redis harus disetel ke volatile-lru.
  • Anda harus menonaktifkan semua autentikasi Redis. Semua data yang disimpan dalam Redis dienkripsi dalam instance Looker sebelum dikirim ke server Redis.
  • Anda dapat menggunakan opsi Redis yang dihosting di AWS ElastiCache atau Google MemoryStore, asalkan itu 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 memulai dengan pesan error yang mirip dengan pesan error berikut:

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

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

Menyetel 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 mulai ulang instance Looker Anda 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 pada setiap node:

cd looker
./looker stop

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

export LOOKER_REDIS_CACHE_DISCOVERY=redis://localhost:6379

Lalu, mulai ulang Looker:

./looker start

Memverifikasi bahwa cache Redis diaktifkan

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

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