IBM Cloud Docs
キャッシュとしての Redis の構成

キャッシュとしての Redis の構成

IBM Cloud® Databases for Redisは Redisデータベース設定 の変更をサポートしており、Redisをキャッシュとして設定するために使用できます。 Radis をキャッシュとして構成すると、Radis は定義されたキャッシュ設定に従って、新しいデータを保存するために古いデータを除去します。 キャッシュとして構成されている場合にも、Databases for Redis デプロイメントは毎日バックアップ・スナップショットを取ります。 デプロイメントでバックアップを無効にすることは、現在のところできません。 デプロイメントはまた、高可用性のために、一部のデータのディスクへの書き込みも行います。 Redis は .rdb ファイルへの上書きコピーによって、フォロワーを再同期します。

キャッシュ設定

キャッシュを構成するには、デプロイメントの maxmemorymaxmemory の設定を調整します。maxmemory は、キャッシュのサイズを定義します。 maxmemory-policy は、maxmemory の制限に達したときの除去の動作を定義します。 さらに、その他の設定では、データベースの操作とチューニングが行われます。

maxmemory

デフォルトでは、maxmemory はデータ・ノードの使用可能メモリーの 80% に設定されているため、ノードがシステム・リソースを使い切ることはありません。 この設定は調整できますが、妥当な制限を設定してください。 そうしないと、データに使用可能なすべてのメモリーが費やされ、デプロイメントがリソース不足に陥ります。

maxmemory-policy

利用可能なRedisの立ち退きポリシー
ポリシー 動作
noeviction キーを除去せず、maxmemory の制限に達するとエラーを返します。
allkeys-lfu 頻繁に使用されるキーを保持し、最も頻繁に使用されない (LFU) キーを除去します。
volatile-lfu 期限切れフィールドが true に設定されている、使用頻度が最も低いキーを削除します。
allkeys-lru 使用されてから最も時間が経っている (LRU) キーを先に除去します。
volatile-lru 有効期限があるキーのセットの中から、使用されてから最も時間が経っている (LRU) キーを先に除去します。
allkeys-random ランダムにキーを除去します。
volatile-random 有効期限があるキーのセットの中からランダムにキーを除去します。
volatile-ttl 有効期限があるキーを、存続時間 (TTL) が短いものから先に除去します。

allkeys ポリシーを使用すると、アルゴリズムは、すべての鍵のセットから除去する鍵を選択します。 volatile ポリシーを使用すると、アルゴリズムは、 期限切れ または 存続時間 (time-to-live (TTL)) のいずれかが設定されている鍵を除去することを選択します。 volatile ポリシーでは、ポリシーに一致する鍵がない場合、鍵は除去されません。

その他の設定

Redisのキャッシュ設定
ポリシー 動作 注記
appendonly デフォルト値は yes。 Redis データのディスクへの書き込みを有効にします。 データをキャッシュする場合は、この値を no に設定します。
stop-writes-on-bgsave-error デフォルト値は yes。 Redis は、失敗したバックアップ・スナップショットを検出すると、書き込みの受け入れを停止します。 キャッシングの場合は、no に設定することができます。
maxmemory-samples LRU アルゴリズムを調整します。デフォルト値は 5 近似 LRU アルゴリズム(Approximated LRU algorithm)

サンプル・キャッシュの設定

デプロイメントの構成を調整するには、変更する設定とその新しい値を含む JSON オブジェクトを送信します。

CONFIG SET は Redis クライアントから直接使用できますが、変更は永続的なものではありません。 デプロイの設定ファイルを変更するには、「Cloud Databases「CLIプラグイン」「API 使用します。 詳しくは、Redis 構成の変更を参照してください。

例えば、Redis の資料では、汎用キャッシュのよい出発点として allkeys-lru 設定が推奨されています。 また、maxmemorymaxmemory-samples は、デフォルト値のままにしておいても構いません。

CLI からキャッシュを設定するには、以下を使用する:

ibmcloud cdb deployment-configuration '<INSTANCE_NAME_OR_CRN>' '{"configuration":{"maxmemory-policy":"allkeys-lru", "appendonly":"no", "stop-writes-on-bgsave-error":"no"}}'

API を通じて同じコンフィギュレーションを設定するには、以下のようにする:

curl -X PATCH 'https://api.{region}.databases.cloud.ibm.com/v4/ibm/deployments/{id}/configuration/schema' \
-H "Authorization: Bearer $APIKEY" \
-H "Content-Type: application/json" \
-d '{"configuration":{
        "maxmemory-policy":"allkeys-lru",
        "appendonly":"no",
        "stop-writes-on-bgsave-error":"no"
      }
    }'