IBM Cloud Docs
永続性としての設定

永続性としての設定

Redis は、その高性能なキー・バリュー・データベースで知られ、ディスク・アクセスに時間がかかるのを避けるため、すべてのデータをRAMに保存していることが特徴である。 それにもかかわらず、このRAM中心のアプローチは、RAMの揮発性の性質を考えると、 Redis プロセスやホストのインシデントが発生した場合にデータ損失のリスクをもたらす。 この懸念に対処するため、 Redis、ディスク上にデータを永続化するメカニズムを提供している。

の永続モード Redis

主な永続化モードは2つある:RDB(スナップショット・モード)とAOF(強力な永続性)です。 それぞれのモードは、性能と信頼性の面で明確なトレードオフを伴う。 したがって、 Redis、適切なパーシステンス・モードを選択するには戦略的な決断が必要となる。

RDBスナップショット

Redis データセットのスナップショットをディスク上のバイナリファイル に保存する。 dump.rdb データセットは、少なくともM回の変更があれば、N秒ごとに保存される。

  • 保存 3600 1:少なくとも1つのキーが変更された場合、1時間ごと。
  • Save 300 100:少なくとも100個のキーが変更された場合、5分ごとに保存。
  • Save 60 10000: 10,000以上のキーが変更された場合、1分ごとに保存。

AOF(ファイルのみ追加)

AOFを有効にすると、 Redis、サービスが受け取るすべての書き込み操作をログに記録してデータを永続化する。 AOFはfsyncポリシーによって設定され、データの耐久性を保証する。

  • 常に:最も安全だが、性能は最低。
  • Everysec(デフォルト):より良いパフォーマンスで安全。
  • いいえ:通常、fsyncを実行するタイミングはオペレーティング・システムに依存しており、通常は約30秒です(安全ではありませんが、最高のパフォーマンスを提供します)。

詳しくは、 Redis persistenceを 参照のこと。

で永続性を設定する。 Databases for Redis

IBM Cloud® Databases for Redis 展開では、プロビジョニング時に RDB スナップショットと AOF の両方がデフォルトで有効になり、データがディスクに書き込まれます。 しかし、ユーザーは AOFを無効にして、 Databases for Redis をキャッシュとして使用することができる。これによりIOPSの負荷が軽減され、パフォーマンスが向上する。

Databases for Redis は高可用性で動作し、RDB スナップショットを無効にすることはできない。

  1. 以下の 手順に従って、 Databases for Redis インスタンスをプロビジョニングしてください。
  2. Databases for Redis、永続性設定を確認する。 Redis CLIを使用して、ICD Redis インスタンスにアクセスします。

デフォルトでは、AOFは yesに設定されているので、 Databases for Redis、RDBのスナップショットとともに毎秒fsyncでAOFパーシステンスを取るように設定されている。

Redis をキャッシュとして使いたい場合は、AOFをオフにすることができる。 また、 Redis、フェイルオーバー時にトランザクションログを再生する必要がないため、データベースの可用性を高めることができる。 詳しくは、 Redis をキャッシュとして設定するを 参照のこと。

Databases for Redis、永続的な設定として再設定する

Databases for Redis インスタンスへの変更を構成するには、次の例のように、 IBM Cloud CLI または永続性を構成するための API のいずれかを使用する必要があります。

以下の設定を調整する:

  • AOFの永続性を有効にするには、 appendonlyyesに設定する。
  • 鍵の期限切れを防ぐため、 maxmemory-policynoeviction に設定されていることを確認する。
  • バックアップエラーが発生した場合に書き込みを停止するには、 stop-writes-on-bgsave-erroryes に設定する。

CLI の例

ibmcloud cdb deployment-configuration '<deployment name or CRN>' '{"configuration":{"maxmemory-policy":" noeviction", "appendonly":"yes", "stop-writes-on-bgsave-error":"yes"}}'

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":""noeviction, "appendonly":"yes", "stop-writes-on-bgsave-error":"yes" } }'