キャッシュとしての Redis の構成
IBM Cloud® Databases for Redisは Redisデータベース設定 の変更をサポートしており、Redisをキャッシュとして設定するために使用できます。 Radis
をキャッシュとして構成すると、Radis は定義されたキャッシュ設定に従って、新しいデータを保存するために古いデータを除去します。 キャッシュとして構成されている場合にも、Databases for Redis デプロイメントは毎日バックアップ・スナップショットを取ります。 デプロイメントでバックアップを無効にすることは、現在のところできません。 デプロイメントはまた、高可用性のために、一部のデータのディスクへの書き込みも行います。 Redis は .rdb
ファイルへの上書きコピーによって、フォロワーを再同期します。
キャッシュ設定
キャッシュを構成するには、デプロイメントの maxmemory
と maxmemory
の設定を調整します。maxmemory
は、キャッシュのサイズを定義します。 maxmemory-policy
は、maxmemory
の制限に達したときの除去の動作を定義します。 さらに、その他の設定では、データベースの操作とチューニングが行われます。
maxmemory
デフォルトでは、maxmemory
はデータ・ノードの使用可能メモリーの 80% に設定されているため、ノードがシステム・リソースを使い切ることはありません。 この設定は調整できますが、妥当な制限を設定してください。 そうしないと、データに使用可能なすべてのメモリーが費やされ、デプロイメントがリソース不足に陥ります。
maxmemory-policy
ポリシー | 動作 |
---|---|
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
ポリシーでは、ポリシーに一致する鍵がない場合、鍵は除去されません。
その他の設定
ポリシー | 動作 | 注記 |
---|---|---|
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
設定が推奨されています。 また、maxmemory
と maxmemory-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"
}
}'