Tair (Redis OSS-compatible) のクラスターインスタンスは、シャード数を増やすスケールアウトや、シャード数を減らすスケールインが可能です。スケーリング中、Tair はオープンソースの Redis クラスターで発生する可能性のある -ASK および -TRYAGAIN エラーを排除します。これにより、シームレスなスケーリング体験が保証されます。
機能
Tair (Redis OSS-compatible) のクラスターインスタンスのスケーリングは、オープンソースの Redis クラスターのスケーリングと比較して、以下の特徴があります。
効率的なスケーリング管理:一元化されたコントロールコンポーネントにより、クラスターの動作を効率的かつ正確に制御します。
原子性のあるデータ移行:Tair は、カーネルのデータレプリケーションロジックを変更することで、データ移行の原子性を保証します。スケーリング中、データはスロット単位で移行されます。このアプローチにより、スロットの分割が防止され、
-ASKおよび-TRYAGAINエラーが回避されます。これにより、サービスの安定性とユーザーエクスペリエンスが大幅に向上します。説明クラスター向けの Redis Serialization Protocol (RESP) では、PING や INFO などの非データコマンド、および PUB/SUB や BLOCKING などの特殊なコマンドファミリーは、スロット移行後に自動的にリダイレクトされません。アプリケーション層は、スケーリング後にルートテーブルを定期的に更新して、最新のトポロジーを取得する必要があります。
データ移行前後のデータ整合性を確保するため、データ移行の最終段階では、対応するスロットの書き込みリクエストのレイテンシが増加します。ただし、書き込みリクエストは失敗しません。
データ移行時間の短縮:スケーリング中、Tair はキー単位ではなくスロット単位でデータを移行します。この方法は非常に効率的であり、データ移行に必要な時間を短縮します。
弾力的なリソーススケーリング:Tair は Auto Scaling をサポートしており、さまざまなビジネスシナリオにおけるリソース要件を満たします。
対象インスタンス
インスタンスは [クラウドネイティブ] デプロイモードを使用している必要があります。
インスタンスはクラスターアーキテクチャを使用しています。
以下のインスタンスのバージョンがサポートされています。
Community Edition 5.0 のインスタンス (マイナーバージョン 5.2.0 以降)
Community Edition 6.0 のインスタンス (マイナーバージョン 6.0.2.0 以降)
Community Edition 7.0 のインスタンス
Redis 5.0 (マイナーバージョン 5.0.34 以降) と互換性のある Tair (Enterprise Edition) のメモリ最適化インスタンス
Redis 6.0 と互換性のある Tair (Enterprise Edition) のメモリ最適化インスタンス
Redis 7.0 と互換性のある Tair (Enterprise Edition) のメモリ最適化インスタンス
Tair (Enterprise Edition) の永続メモリインスタンス
Tair (Enterprise Edition) のディスクベースのインスタンス
注意事項
クライアントの要件:
クラスターインスタンスが直接接続モードを使用している場合、クライアントは MOVED コマンドを正しく処理する必要があります。
クラスターインスタンスがプロキシモードを使用している場合、スケールイン操作中に一部のプロキシノードがリリースされます。これにより接続が切断されます。クライアントは自動的に再接続できる必要があります。
スケーリング中に高レイテンシが発生すると、クライアントコマンドがタイムアウトする可能性があります。クライアントはタイムアウト後に自動的に再接続できる必要があります。
説明推奨される クライアント を使用することをお勧めします。
特殊なコマンドの影響:
スケーリング中にブロッキングコマンドを使用すると、エラーが発生する可能性があります。
スケーリング中に Pub/Sub コマンドを使用すると、クライアントの実装によってはデータ整合性が保証されず、エラーが発生する可能性があります。