Looker verwaltet einen Cache als Teil jeder Instanz. Der Standardcache von Looker ist eine benutzerdefinierte Caching-Lösung, die auf mehreren Ebenen basiert: In-Memory, lokale Festplatte und Remote-Festplatte. Die interne Looker-Datenbank wird als Index verwendet, um zu ermitteln, wo sich zwischengespeicherte Objekte im System befinden.
Wenn Sie Ihre eigene Looker-Instanz hosten, können Sie Looker optional so konfigurieren, dass ein separat gehosteter Redis-Cache verwendet wird. Ein Redis-Cache kann folgende Vorteile bieten:
- Verbesserter Cache-Abruf: Die wichtigste Verbesserung sind einheitliche Cache-Abrufzeiten. Wenn die Anzahl der Knoten in einem Looker-Cluster zunimmt, kann die Kommunikation zwischen den Knoten die Cacheleistung beeinträchtigen. Die neue Redis-Cache-Architektur konsolidiert den Cache, was zu einheitlichen Cache-Abrufzeiten unabhängig von der Größe Ihres Looker-Clusters führt.
- Geringere Last: Der Cache befindet sich in einer separaten Ebene von Ihrer Looker-Instanz, was zu einer geringeren Last auf der Looker-Instanz führt.
- Skalierbarkeit: Wenn Sie einen Redis-Cache verwenden, kann der Cache unabhängig von Ihrer Looker-Instanz skaliert werden.
Voraussetzungen
Looker unterstützt die Redis-Versionen 4.0.x, 5.0.x und 7.2.x. Wenn Sie einen Redis-Cache mit Looker verwenden möchten, muss Ihre Redis-Instanz die folgenden Anforderungen erfüllen:
- Auf die Redis-Instanz muss über die Looker-Instanz zugegriffen werden können.
- Die Redis-Instanz darf kein Cluster sein. Sie können jedoch eine Replikatinstanz für Hochverfügbarkeit verwenden.
- Die Größe des Redis-Cache sollte ungefähr der Größe Ihres Looker-Cache entsprechen. Standardmäßig beträgt der Looker-Cache 2 GB pro Knoten. Wenn Sie also einen Looker-Cluster mit drei Knoten haben, wird ein Redis-Cache mit 6 GB empfohlen.
- Die Redis-Konfiguration
maxmemory-policy
sollte aufvolatile-lru
gesetzt sein. - Sie müssen die Redis-Authentifizierung deaktivieren. Alle in Redis gespeicherten Daten werden in der Looker-Instanz verschlüsselt, bevor sie an den Redis-Server gesendet werden.
- Sie können eine Redis-Option verwenden, die auf einem AWS ElastiCache oder einem Google Memorystore gehostet wird, sofern es sich nicht um eine Redis-Clusterkonfiguration handelt.
Außerdem ist das GCM-Verschlüsselungssystem von Looker erforderlich, um Redis in Looker zu verwenden. Sie müssen die Verschlüsselung für Instanzen, die die alte Verschlüsselung verwenden, aktualisieren, bevor Sie Redis aktivieren. Wenn Sie versuchen, Redis ohne GCM-Verschlüsselung zu aktivieren, kann Looker nicht gestartet werden und es wird eine Fehlermeldung ähnlich der folgenden angezeigt:
2020-01-23 10:28:44.253 -0800 [ERROR|007e4|cache] :: Must enable GCM encryption to use Redis caching
Eine Anleitung zum Upgrade von der Legacy-Verschlüsselung auf die GCM-Verschlüsselung finden Sie auf der Dokumentationsseite Zur AES-256-GCM-Verschlüsselung migrieren.
Umgebungsvariable zum Aktivieren des Redis-Cache festlegen
Wenn Sie den Redis-Cache aktivieren möchten, müssen Sie die Umgebungsvariable LOOKER_REDIS_CACHE_DISCOVERY
auf die Redis-Verbindungs-URL festlegen und dann die Looker-Instanz einschließlich aller Knoten im Cluster vollständig neu starten. Wir empfehlen, den Server vollständig herunterzufahren, die Umgebung und die Start-Scripts nach Bedarf zu ändern, um die Umgebungsvariable einzufügen, und dann alle Knoten zu starten.
Führen Sie die folgenden Befehle auf jedem Knoten aus, um Looker herunterzufahren:
cd looker
./looker stop
Wenn Sie beispielsweise eine lokale Redis-Instanz auf demselben Host am Standardport haben, legen Sie die Umgebungsvariable LOOKER_REDIS_CACHE_DISCOVERY
so fest:
export LOOKER_REDIS_CACHE_DISCOVERY=redis://localhost:6379
Starten Sie Looker dann neu:
./looker start
Prüfen, ob der Redis-Cache aktiviert ist
Wenn Sie feststellen möchten, ob Ihr Redis-Cache aktiviert ist, suchen Sie in Ihrem Looker-Log nach Einträgen. Es sollten Logeinträge ähnlich den folgenden vorhanden sein:
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