Tair (Redis OSS-compatible) の標準アーキテクチャは、クラスタモードが有効になっていないアーキテクチャです。このアーキテクチャは、すべてのデータを単一シャードに格納し、さまざまなユースケースで使いやすさ、信頼性、費用対効果を確保します。クラスタアーキテクチャとは異なり、標準アーキテクチャはシャード数量の調整をサポートしておらず、高可用性(マルチレプリカ)インスタンスタイプを提供します。
高可用性
標準の高可用性(HA)アーキテクチャは、マスターレプリカモデルを使用します。マスターノードは日々のワークロードを処理し、レプリカノードはホットスタンバイモードのまま高可用性を確保します。マスターノードに障害が発生した場合、システムは 30 秒以内にワークロードをレプリカノードに切り替え、安定性を確保します。
クラウドネイティブ標準アーキテクチャ
クラウドネイティブ インスタンスは、1 つのマスターノードと最大 9 つのレプリカノードで構成できます。複数ゾーンにわたる HA スイッチオーバーがトリガーされると、システムはまずビジネスのゾーン間アクセスを回避するために、同じゾーン内でスイッチオーバーを実行しようとします。
クラシック標準アーキテクチャ
クラシック インスタンスは、1 つのマスターノードと 1 つのレプリカノードのみで構成できます。インスタンスが複数ゾーンにデプロイされている場合、レプリカノードはセカンダリゾーンにデプロイされます。
機能
信頼性
サービスの信頼性:標準 HA アーキテクチャはマスターレプリカモデルを使用します。マスターノードとレプリカノードは異なる物理ホストにデプロイされます。マスターノードに障害が発生した場合、独自開発の HA システムがマスターレプリカのスイッチオーバーを実行して、スムーズなビジネス運用を保証します。
データの信頼性:デフォルトでは、データの永続性が有効になっています。これは、すべてのデータがディスクに書き込まれることを示します。このアーキテクチャはデータバックアップをサポートしています。これにより、誤操作後にバックアップセットからインスタンスをクローンまたはロールバックしてデータを復元できます。杭州ゾーン H やゾーン I など、ディザスタリカバリ機能を提供するゾーンで作成されたインスタンスは、ゾーンディザスタリカバリをサポートしています。
互換性:このアーキテクチャは Redis プロトコルと完全に互換性があります。独自の Redis データベースから標準インスタンスにデータをシームレスに移行できます。また、Data Transmission Service(DTS) を使用して、サービスを中断することなく増分データを移行することもできます。
社内独自のシステム
HA システム:独自の HA システムは、ディスク I/O 障害や CPU 障害など、マスターノードの障害を検出し、マスターレプリカのスイッチオーバーを実行してサービスの可用性を確保するために使用されます。
マスターレプリカレプリケーションメカニズム:マスターノードとレプリカノード間の完全データ同期中に発生する fork の問題は、ノンブロッキング同期を実現するために解決されています。先行書き込みログ(WAL)を使用して、ノード間でデータをレプリケートできます。レプリケーションが中断された場合、システムのパフォーマンスと安定性への影響は最小限です。これは、ネイティブ Redis のマスターレプリカレプリケーションメカニズムによって引き起こされる問題を解決します。
シナリオ
Redis プロトコルとの高い互換性が必要なアプリケーション
標準アーキテクチャは Redis プロトコルと互換性があります。サービスを中断することなく、ワークロードを標準インスタンスに移行できます。
Redis を永続データストレージとして使用するアプリケーション
標準アーキテクチャは、データの信頼性を確保するためのデータの永続性、バックアップ、復元メカニズムを提供します。
単一インスタンスでのクエリレートが安定しているアプリケーション
ネイティブ Redis データベースはシングルスレッドモードを使用します。ワークロードが 100,000 クエリ/秒(QPS)未満のクエリレートをサポートしている場合は、標準アーキテクチャを使用することをお勧めします。より高いクエリレートが必要な場合は、読み書き分離を有効にするか、クラスタアーキテクチャを使用します。
ソートおよび計算ワークロードが少なく、単純な Redis コマンドが必要なアプリケーション
ネイティブ Redis のシングルスレッドモードのため、CPU パフォーマンスが主なボトルネックになります。多数のソートおよび計算ワークロードを処理する場合は、クラスタアーキテクチャを使用することをお勧めします。
FAQ
既存のビジネスは Redis Sentinel モードで動作しています。ビジネスをクラウドに移行する際に、どのアーキテクチャを選択すればよいですか?
標準 HA アーキテクチャを選択することをお勧めします。インスタンスを作成した後、インスタンスのSentinel 互換モードを有効にできます。その後、Redis Sentinel に接続するのと同じ方法で Tair (および Community Edition) に接続できます。
インスタンスに 8 GB のメモリがあり、標準アーキテクチャを使用している場合、メモリ容量をアップグレードせずにインスタンスのパフォーマンスをアップグレードするにはどうすればよいですか?
ビジネス要件に基づいて、次のいずれかのアップグレードソリューションを使用することをお勧めします。
接続数または帯域幅が不十分な場合、インスタンスは高い読み取りトラフィックを処理できない可能性があります。メモリスペックをアップグレードせずにインスタンスの読み取りパフォーマンスを向上させるには、読み書き分離を有効にすることをお勧めします。
このソリューションは、ビジネスコードを変更することなくすぐに使用できます。また、いつでも機能を無効にすることもできます。インスタンスの読み書き分離を有効にすると、インスタンスは読み取りリクエストと書き込みリクエストを自動的に識別し、対応するノードに転送できます。これにより、インスタンスは高並列の読み取りおよび書き込み操作をサポートできます。
既存のインスタンスの CPU 使用率が常に高い場合は、インスタンスをクラスタインスタンスにアップグレードすることを検討してください。これにより、データシャードを追加して、単一シャードの CPU 使用率を削減できます。
ただし、このソリューションではインスタンスアーキテクチャを変更する必要があり、特定のコマンドは標準アーキテクチャとクラスタアーキテクチャ間で互換性がない場合があります。詳細については、「クラスタインスタンスと読み書き分離インスタンスでサポートされるコマンドの制限」をご参照ください。アップグレード操作を実行する前に、変更の互換性と影響を評価することをお勧めします。
次のセクションでは、異なるアーキテクチャにおける 8 GB の Community Edition インスタンスのパフォーマンスを比較します。
アーキテクチャ
メモリ(GB)
CPU コア
帯域幅(Mbit/s)
最大接続数
QPS 参照値
標準アーキテクチャ(マスターノードとレプリカノード)
8
2
96
20,000
100,000
標準アーキテクチャ(読み書き分離有効、マスターノード 1 つ、読み取りレプリカ 1 つ)
8
4 (2 × 2)
192 (96 × 2)
40,000 (20,000 × 2)
200,000
クラスタアーキテクチャ(2 シャード)
8 (4 GB × 2 シャード)
4 (2 × 2)
192 (96 × 2)
40,000 (20,000 × 2)
200,000