2023.03.18/技術メモ
Redashのクエリーキャッシュの肥大対策

概要

redashは、クエリーを実行させるとキャッシュが残ります。
しかし、日次で見るようなクエリーであれば、昨日のクエリーは意味がありません。
このためキャッシュは基本的には積極的に消して行くべきだと考えます。

キャッシュ自動削除の仕組み

キャッシュ削除はデフォルトで下記の通りの設定値で制御されます。

https://redash.io/help/open-source/admin-guide/env-vars-settings

環境変数名 意味 デフォルト値
REDASH_QUERY_RESULTS_CLEANUP_ENABLED 自動キャッシュ削除機能を有効にするかどうか true
REDASH_QUERY_RESULTS_CLEANUP_COUNT 自動キャッシュ削除1回あたり何レコードを消すか 100
REDASH_QUERY_RESULTS_CLEANUP_MAX_AGE キャッシュが作られてから何日後に消すか 7

キャッシュ削除は5分に一回実行され、その1回あたりの最大削除レコード数が上記の通り制限されています。
この数値が小さいと、利用方法によっては、キャッシュがたまるスピードの方が早くなり、ディスク残量がなくなってしまいます。
弊社が導入したクライアントでは、REDASH_QUERY_RESULTS_CLEANUP_COUNTは1500に設定しています。

設定の仕方

envファイルは、/opt/redash/.env または、/opt/redash/env あるいは、docker-compose.yml でも設定できます。
設定したら docker-compose で再起動します。

$ docker-compose down 
$ docker-compose up -d

なお、PostgreSQLはキャッシュを消しても基本的にディスク容量は開放されません。
適宜vacuumなどを行う必要があります。

https://www.postgresql.jp/document/9.1/html/sql-vacuum.html

飾り(ドット)

どうしたらよいかわからない、まだぼんやりとしかイメージがない、
といった状態でもまったく問題ございません。
まずは無料相談にて、お気軽にお問い合わせください。

飾り(ドット・矢印)

まずはお気軽にご連絡くださいお問い合わせはこちら