Redis-Cache auf einer vom Kunden gehosteten Instanz aktivieren

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 Datenbank von Looker wird als Index verwendet, der angibt, 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 primäre Verbesserung besteht in konsistenten Cache-Abrufzeiten. Mit zunehmender Anzahl der Knoten in einem Looker-Cluster kann die Kommunikation zwischen den Knoten die Cache-Leistung beeinträchtigen. Die neue Redis-Cache-Architektur konsolidiert den Cache, was zu konsistenten Cache-Abrufzeiten führt, unabhängig von der Größe Ihres Looker-Clusters.
  • Weniger Last : Außerdem befindet sich der Cache in einer separaten Ebene von Ihrer Looker-Instanz, was zu einer geringeren Last auf der Looker-Instanz führt.
  • Skalierbarkeit : Durch die Verwendung eines Redis-Caches 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:

  • Die Redis-Instanz muss von der Looker-Instanz aus zugänglich sein.
  • Die Redis-Instanz darf kein Cluster sein. Sie können jedoch eine Replikatinstanz für Hochverfügbarkeit verwenden.
  • Die Größe des Redis-Caches sollte ungefähr der Größe Ihres Looker-Caches entsprechen. Standardmäßig ist der Looker-Cache 2 GB pro Knoten. Wenn Sie also einen Looker-Cluster mit drei Knoten haben, wird ein 6 GB großer Redis-Cache empfohlen.
  • Die Redis-Konfiguration maxmemory-policy sollte auf volatile-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 in AWS ElastiCache oder Google Memorystore gehostet wird, solange 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 Legacy-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 Migration zur AES-256-GCM-Verschlüsselung.

Umgebungsvariable zum Aktivieren des Redis-Caches festlegen

Um den Redis-Cache zu aktivieren, müssen Sie die Umgebungsvariable LOOKER_REDIS_CACHE_DISCOVERY so festlegen, dass sie auf die Redis-Verbindungs-URL verweist. Starten Sie dann Ihre Looker-Instanz einschließlich aller Knoten im Cluster neu. Wir empfehlen, den Server vollständig herunterzufahren, die Umgebungs- und Startskripts nach Bedarf zu ändern, um die Umgebungsvariable einzufügen, und dann alle Knoten zu starten.

Führen Sie auf jedem Knoten die folgenden Befehle 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 neu:

./looker start

Prüfen, ob der Redis-Cache aktiviert ist

Ob Ihr Redis-Cache aktiviert ist, können Sie in Ihrem Looker-Log prüfen. Dort sollten Logeinträge ähnlich den folgenden zu finden 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