Habilita una caché de Redis en una instancia alojada por el cliente

Looker mantiene una cache como parte de cada instancia. La caché predeterminada de Looker es una solución de almacenamiento en caché personalizada que se basa en varias capas: en la memoria, en el disco local y en el disco remoto. La base de datos interna de Looker se usa como un índice que identifica dónde se encuentran los objetos almacenados en caché en el sistema.

Si alojas tu propia instancia de Looker, tienes la opción de configurar Looker para usar una caché de Redis alojada por separado. Una caché de Redis puede proporcionar los siguientes beneficios:

  • Recuperación de caché mejorada: La mejora principal se producirá en tiempos de recuperación de caché coherentes. A medida que aumenta la cantidad de nodos en un clúster de Looker, la comunicación entre nodos puede disminuir el rendimiento de la caché. La nueva arquitectura de caché de Redis consolida la caché, lo que da como resultado tiempos de recuperación de caché coherentes, sin importar el tamaño de tu clúster de Looker.
  • Menos carga: Además, la caché se encuentra en un nivel independiente de tu instancia de Looker, lo que genera una menor carga en la instancia de Looker.
  • Escalabilidad: El uso de una caché de Redis también permite que esta escale independientemente de tu instancia de Looker.

Requisitos

Looker es compatible con las versiones 4.0.x y 5.0.x de Redis. Para usar una caché de Redis con Looker, tu instancia de Redis debe cumplir con los siguientes requisitos:

  • Se debe poder acceder a la instancia de Redis desde la instancia de Looker.
  • La instancia de Redis no debe ser un clúster. Sin embargo, puedes usar una configuración de principal o réplica para la alta disponibilidad.
  • El tamaño de la caché de Redis debería ser aproximadamente igual al de tu caché de Looker. De forma predeterminada, la caché de Looker es de 2 GB por nodo. Por lo tanto, si tienes un clúster de Looker de tres nodos, se recomienda una caché de Redis de 6 GB.
  • La configuración maxmemory-policy de Redis se debe establecer en volatile-lru.
  • Deberás inhabilitar cualquier autenticación de Redis. Todos los datos almacenados en Redis se encriptan en la instancia de Looker antes de enviarlos al servidor de Redis.
  • Puedes usar una opción de Redis alojada en AWS ElastiCache o Google MemoryStore, siempre que no sea una configuración de clúster de Redis.

Además, el sistema de encriptación de GCM de Looker es necesario para usar Redis en Looker. Debes actualizar la encriptación para las instancias que usan encriptación heredada antes de habilitar Redis. Si intentas habilitar Redis sin encriptación de GCM, Looker no comenzará con un mensaje de error similar al siguiente:

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

Para obtener instrucciones sobre la actualización de la encriptación heredada a la encriptación de GCM, consulta la página de documentación Cómo migrar a la encriptación AES-256 GCM.

Configura una variable de entorno para habilitar la caché de Redis

Para habilitar la caché de Redis, debes configurar la variable de entorno LOOKER_REDIS_CACHE_DISCOVERY de modo que apunte a la URL de conexión de Redis y, luego, reiniciar por completo tu instancia de Looker, incluidos todos los nodos del clúster. Te recomendamos que apagues tu servidor por completo, modifiques tu entorno y las secuencias de comandos de inicio según sea necesario para incluir la variable de entorno y, luego, inicies todos los nodos.

Para cerrar Looker, ejecuta los siguientes comandos en cada nodo:

cd looker
./looker stop

Luego, por ejemplo, si tienes una instancia local de Redis en el mismo host en el puerto predeterminado, configura la variable de entorno LOOKER_REDIS_CACHE_DISCOVERY de la siguiente manera:

export LOOKER_REDIS_CACHE_DISCOVERY=redis://localhost:6379

Luego, reinicia Looker:

./looker start

Verifica que la caché de Redis esté habilitada

Para determinar si tu caché de Redis está habilitada, busca entradas en tu registro de Looker. Debe haber entradas de registro similares a las siguientes:

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