高可用性
IBM Cloud® Databases for Redis は、IBM Cloud 環境に完全に統合されたマネージド・クラウド・データベース・サービスです。 データベース、ストレージ、サポート・インフラストラクチャーはすべて、IBM Cloud で実行されます。
データベースの高可用性機能
Databases for Redis は、インフラストラクチャーの保守、アップグレード、および障害からデータベースとデータを保護するための、レプリケーション機能、フェイルオーバー機能、および高可用性の機能を備えています。 デプロイメントには、1 次 + レプリカという構成の 2 つのデータ・メンバーからなるクラスターが含まれ、非同期レプリケーションによって同期した状態が維持されます。 高可用性は3つの Redisセンチネルで監視・管理されている。
デフォルトでは、すべてのデプロイメントでデータ永続性が有効になっており、データはディスクに書き込まれます。 データ永続化モデルは、プリアンブル・スナップショットとAOF(Append Only File)を使用する。 Redisがディスク(fsync
)に書き込む間隔は、1秒に1回に設定されている。
データ永続性はオフにすることができます。これは、Redis をキャッシュとして構成する場合に役立ちます。
アプリケーションの高可用性
デプロイメントまたは IBM Cloud への接続が一時的に失われた場合の処理を、アプリケーションの設計に組み込むことができます。
多くのRedisクライアントには、エラーチェックとエラー処理の機能がある:
- Pythonクライアントの'
Redis.py
は、接続に失敗して別のコマンドが実行されると'ConnectionError
を生成する。 このクライアントは、ヘルス・チェックを周期的に、またはコマンドの前に実行することもできます。 - Javaクライアントの'
Jedis
は、データベースに到達できないときに'JedisConnectionException
を生成し、再接続を試みる。 ただし、コマンドを自動的に再試行しません。コマンドによっては、再試行したり複数回実行したりすることが安全でない場合もあるためです。 - C#ドライバー「
StackExchange.Redis
」は、クライアント側のタイムアウト、再接続、再試行ロジックのパラメータを調整できる。 これらのパラメーターは、アプリケーションの要件に合わせて調整できます。
Node.jsクライアント「ioredis
」を使用したクラウド対応アプリケーション開発の良い例が、IBMDeveloperの記事「Error detection and handling withRedis」にある。
アプリケーションをDatabases for Redisに接続する詳細については、以下のドキュメントページを参照してください:
いずれの場合も、ご利用のクライアントの資料を参照したうえで、接続を検査し、切断時に再接続して、アプリケーションにとって適切であればコマンドを再試行する安定したアプリケーションを設計してください。
データベースが使用できないか、接続が中断した状態が何分間も続くことは予期されていません。 接続のない状態が 1 分よりも長く続くことがある場合は、サポート・チケットをオープンして詳細をお知らせください。
データベースの状態のモニター
Databases for Redis は、IBM® Cloud Logs 統合を備えているため、ライブ・ログと履歴ログを参照できます。
デプロイメントのログを確認することにより、デプロイメントの HA およびレプリケーションの状態をモニターすることができます。 また、アプリケーションで繰り返し問題が発生する場合には、ログを確認することで、接続障害などの問題の発生時にデータベース上で生じていることについての洞察が得られます。
高可用性、災害復旧、SLA のリソース
Databases for Redis デプロイメントは、IBM Cloud Databases の HA、DR、および SLA に関する情報および条件に準拠しています。