O Looker mantém uma cache como parte de cada instância. A cache predefinida do Looker é uma solução de colocação em cache personalizada que se baseia em várias camadas: na memória, no disco local e no disco remoto. A base de dados interna do Looker é usada como um índice que identifica a localização dos objetos em cache no sistema.
Se estiver a alojar a sua própria instância do Looker, pode configurar opcionalmente o Looker para usar uma cache Redis alojada separadamente. Uma cache Redis pode oferecer as seguintes vantagens:
- Obtenção de cache melhorada: a principal melhoria vai ser nos tempos de obtenção de cache consistentes. À medida que o número de nós num cluster do Looker aumenta, a comunicação entre nós pode degradar o desempenho da cache. A nova arquitetura de cache Redis consolida a cache, o que resulta em tempos de obtenção da cache consistentes, independentemente do tamanho do seu cluster do Looker.
- Menos carga: além disso, a cache está num nível separado da sua instância do Looker, o que leva a uma menor carga na instância do Looker.
- Escalabilidade: a utilização de uma cache Redis também permite que a cache seja dimensionada independentemente da sua instância do Looker.
Requisitos
O Looker suporta as versões 4.0.x, 5.0.x e 7.2.x do Redis. Para usar uma cache Redis com o Looker, a sua instância Redis tem de cumprir os seguintes requisitos:
- A instância de Redis tem de estar acessível a partir da instância do Looker.
- A instância do Redis não pode ser um cluster. No entanto, pode usar uma instância de réplica para alta disponibilidade.
- O tamanho da cache do Redis deve ser aproximadamente igual ao tamanho da cache do Looker. Por predefinição, a cache do Looker é de 2 GB por nó. Por isso, se tiver um cluster do Looker de três nós, recomenda-se uma cache do Redis de 6 GB.
- A configuração do Redis
maxmemory-policy
deve ser definida comovolatile-lru
. - Tem de desativar qualquer autenticação do Redis. Todos os dados armazenados no Redis são encriptados na instância do Looker antes de serem enviados para o servidor Redis.
- Pode usar uma opção Redis alojada num AWS ElastiCache ou num Google Memorystore, desde que não seja uma configuração de cluster Redis.
Além disso, o sistema de encriptação GCM do Looker é necessário para usar o Redis no Looker. Tem de atualizar a encriptação para instâncias que usam a encriptação antiga antes de ativar o Redis. Se tentar ativar o Redis sem a encriptação GCM, o Looker não é iniciado e é apresentada uma mensagem de erro semelhante à seguinte:
2020-01-23 10:28:44.253 -0800 [ERROR|007e4|cache] :: Must enable GCM encryption to use Redis caching
Para ver instruções sobre a atualização da encriptação antiga para a encriptação GCM, consulte a página de documentação Migrar para a encriptação AES-256 GCM.
Definir uma variável de ambiente para ativar a cache do Redis
Para ativar a cache Redis, tem de definir a variável de ambiente LOOKER_REDIS_CACHE_DISCOVERY
para apontar para o URL de ligação do Redis e, em seguida, fazer um reinício completo da instância do Looker, incluindo todos os nós no cluster. Recomendamos que encerre completamente o servidor, modifique os scripts de ambiente e de arranque conforme necessário para incluir a variável de ambiente e, em seguida, inicie todos os nós.
Para encerrar o Looker, execute os seguintes comandos em cada nó:
cd looker
./looker stop
Em seguida, por exemplo, se tiver uma instância Redis local no mesmo anfitrião na porta predefinida, defina a variável de ambiente LOOKER_REDIS_CACHE_DISCOVERY
da seguinte forma:
export LOOKER_REDIS_CACHE_DISCOVERY=redis://localhost:6379
Em seguida, reinicie o Looker:
./looker start
Verificar se a cache Redis está ativada
Para determinar se a cache Redis está ativada, procure entradas no registo do Looker. Devem existir entradas de registo semelhantes às seguintes:
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