在客戶代管的執行個體上啟用 Redis 快取

Looker 會在每個執行個體中維護快取。Looker 的預設快取是自訂快取解決方案,以多個層級為基礎:記憶體內、本機磁碟和遠端磁碟。Looker 內部資料庫會做為索引,用於識別快取物件在系統中的位置。

如果您自行代管 Looker 執行個體,可以選擇設定 Looker 使用另外代管的 Redis 快取。Redis 快取可提供下列優點:

  • 改善快取擷取作業:主要改善項目是快取擷取時間一致。隨著 Looker 叢集中的節點數量增加,節點間的通訊可能會降低快取效能。新的 Redis 快取架構會整合快取,因此無論 Looker 叢集大小為何,快取擷取時間都會保持一致。
  • 減少負載:此外,快取與 Looker 執行個體位於不同層級,因此可減少 Looker 執行個體的負載。
  • 可擴充性:使用 Redis 快取時,快取可獨立於 Looker 執行個體進行擴充。

需求條件

Looker 支援 Redis 4.0.x、5.0.x 和 7.2.x 版。如要在 Looker 中使用 Redis 快取,Redis 執行個體必須符合下列規定:

  • Looker 執行個體必須能存取 Redis 執行個體。
  • Redis 執行個體不得為叢集。不過,您可以將副本執行個體用於高可用性。
  • Redis 快取的大小應與 Looker 快取的大小大致相同。根據預設,每個節點的 Looker 快取為 2 GB,因此如果您有三個節點的 Looker 叢集,建議使用 6 GB 的 Redis 快取。
  • Redis maxmemory-policy 設定應設為 volatile-lru
  • 您必須停用所有 Redis 驗證。儲存在 Redis 中的所有資料都會在 Looker 執行個體中加密,再傳送至 Redis 伺服器。
  • 只要不是 Redis 叢集設定,您可以使用 AWS ElastiCache 或 Google Memorystore 上代管的 Redis 選項。

此外,您必須使用 Looker 的 GCM 加密系統,才能在 Looker 中使用 Redis。啟用 Redis 前,請務必更新使用舊版加密機制的執行個體加密功能。如果您嘗試啟用 Redis,但未啟用 GCM 加密,Looker 將無法啟動,並顯示類似以下的錯誤訊息:

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

如需從舊版加密升級至 GCM 加密的操作說明,請參閱「遷移至 AES-256 GCM 加密」說明文件頁面。

設定環境變數以啟用 Redis 快取

如要啟用 Redis 快取,請將 LOOKER_REDIS_CACHE_DISCOVERY 環境變數設為指向 Redis 連線 URL,然後徹底重新啟動 Looker 執行個體,包括叢集中的所有節點。建議您完全關閉伺服器,視需要修改環境和啟動指令碼,加入環境變數,然後啟動所有節點。

如要關閉 Looker,請在每個節點上執行下列指令:

cd looker
./looker stop

舉例來說,如果您在預設通訊埠的相同主機上擁有本機 Redis 執行個體,請按照下列方式設定 LOOKER_REDIS_CACHE_DISCOVERY 環境變數:

export LOOKER_REDIS_CACHE_DISCOVERY=redis://localhost:6379

然後重新啟動 Looker:

./looker start

確認是否已啟用 Redis 快取

如要判斷 Redis 快取是否已啟用,請在 Looker 記錄中尋找項目。記錄項目應類似下列所示:

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