Tair DRAMベースのインスタンスは、ホットデータに対する同時並行性の高い読み取りおよび書き込み操作が多数含まれ、ApsaraDB for Redis Community Editionインスタンスよりも高いパフォーマンスが必要なシナリオに適しています。 ApsaraDB for Redis Community Editionインスタンスと比較して、DRAMベースのインスタンスは、マルチスレッドのパフォーマンスの向上や複数の拡張データ構造の統合など、より多くの利点を提供します。
メリット
項目 | 説明 |
互換性 |
|
パフォーマンス |
|
配置アーキテクチャ |
|
複数のRedisモジュールの統合 | |
エンタープライズグレードの機能 |
|
データセキュリティ |
シナリオ
Tair DRAMベースのインスタンスは、ライブビデオストリーミング、フラッシュセールス、オンライン教育などのシナリオに適しています。 次のセクションでは、一般的なシナリオについて説明します。
シナリオ1: フラッシュ販売中、キャッシュされたホットキーのQPSが200,000を超える場合があります。 ApsaraDB for Redis Community Editionインスタンスは、この要件を満たすことができません。
Tair DRAMベースのインスタンスは、パフォーマンスの問題なしにフラッシュ販売中のリクエストを効率的に処理できます。
シナリオ2: ApsaraDB for Redis Community Editionクラスターインスタンスでは、データベーストランザクションとLuaスクリプトに制限があります。
Tair DRAMベースのインスタンスは高いパフォーマンスを提供し、ApsaraDB for Redis Community Editionクラスターインスタンスでのコマンドの使用制限を排除します。
シナリオ3: 1つのマスターノードと複数のレプリカノードで構成される自己管理型Redisインスタンスを作成しました。 レプリカノードの数とO&Mコストは、ワークロードの増加に伴い増加します。
読み書き分離アーキテクチャを使用するTair DRAMベースのインスタンスは、1つのデータノードと最大5つのリードレプリカを提供して、数百万のQPSを処理するのに役立ちます。
シナリオ4: 数千万のQPSを処理する自己管理Redisクラスターを作成しました。 データシャードの数とO&Mコストは、ワークロードの増加に伴い増加します。
Tair DRAMベースのインスタンスは、クラスターを3分の2に縮小し、O&Mコストを大幅に削減できます。
スレッドモデルの比較
Threadingモデル | 説明 |
ApsaraDB for Redis Community EditionインスタンスとネイティブRedisデータベースは、シングルスレッディングモデルを使用します。 リクエスト処理中、ネイティブRedisデータベースとApsaraDB for Redis Community Editionインスタンスは、リクエストの読み取り、リクエストの解析、データの処理、レスポンスの送信を実行する必要があります。 このシナリオでは、ネットワークI/O操作とリクエストの解析により、使用可能なリソースのほとんどが消費されます。 | |
パフォーマンスを向上させるために、各Tair DRAMベースのインスタンスは複数のスレッドで実行され、これらのステップのタスクを並列に処理します。
各DRAMベースのインスタンスは、I/Oスレッド内の要求を読み取り、解析し、解析した要求をコマンドとしてキューに入れ、これらのコマンドをワーカースレッドに送信します。 次に、ワーカースレッドはコマンドを実行して要求を処理し、異なるキューを使用して応答をI/Oスレッドに送信します。 Tair DRAMベースのインスタンスは、最大4つの同時I/Oスレッドをサポートします。 ロック解除されたキューとパイプラインを使用して、I/Oスレッドとワーカースレッド間でデータを送信し、マルチスレッドのパフォーマンスを向上させます。 説明
|
Redis 6.0のマルチスレッドモデルは、大量のCPUリソースを消費して、Redis 6.0以前のメジャーバージョンのシングルスレッドモデルよりも最大2倍高いパフォーマンスを実現します。 DRAMベースのインスタンスのReal Multi-I/Oモデルは、完全に高速化されたI/Oスレッドを提供し、多数の同時接続を維持し、スループットを線形に向上させます。
性能比較
ApsaraDB for Redisインスタンスは、ネイティブRedisデータベースと同じシングルスレッディングモデルを使用します。 シングルスレッディングモデルでは、各データノードは80,000から100,000のQPSをサポートします。 Tair DRAMベースのインスタンスはマルチスレッディングモデルを使用します。これにより、I/O、ワーカー、および補助スレッドがリクエストを並列に処理できます。 DRAMベースのインスタンスの各データノードは、ApsaraDB for Redis Community Editionインスタンスの各データノードの約3倍のパフォーマンスを発揮します。 次の表に、異なるアーキテクチャのApsaraDB for RedisインスタンスとTair DRAMベースのインスタンスとそのユースケースの比較を示します。
アーキテクチャ | ApsaraDB for Redisインスタンス | Tair DRAMベースのインスタンス |
標準アーキテクチャ | これらのインスタンスは、単一ノードで必要なQPSの数が100,000を超える場合には適していません。 | これらのインスタンスは、単一ノードで必要なQPSの数が100,000を超える場合に適しています。 |
クラスターアーキテクチャ | クラスターインスタンスは、複数のデータノードで構成されます。 各データノードは、標準インスタンスと同様のパフォーマンスを提供します。 データノードがホットデータを記憶し、ホットデータに対する多数の同時要求を受信した場合、データノードに記憶されている他のデータに対する読み出しおよび書き込み動作が影響を受ける可能性がある。 その結果、データノードの性能が低下する。 | これらのインスタンスは、メンテナンスコストを削減して、ホットデータの読み書きに高いパフォーマンスを提供します。 |
読み書き分離アーキテクチャ | これらのインスタンスは、高い読み取りパフォーマンスを提供し、読み取り操作の数が書き込み操作の数よりも多いシナリオに適しています。 ただし、これらのインスタンスは多数の同時書き込み操作をサポートできません。 | これらのインスタンスは高い読み取りパフォーマンスを提供し、多数の同時書き込み操作をサポートできます。 これらのインスタンスは、多数の書き込み操作を処理する必要があるが、読み取り操作の数が書き込み操作の数よりも多いシナリオに適しています。 |
複数のRedisモジュールの統合
オープンソースのRedisと同様に、ApsaraDB for Redis Community Editionは、String、List、Hash、Set、Sorted Set、Streamなどのさまざまなデータ構造をサポートしています。 これらのデータ構造は、一般的な開発ワークロードをサポートするのに十分ですが、高度なワークロードはサポートしません。 高度なワークロードを管理するには、アプリケーションデータを変更するか、Luaスクリプトを実行する必要があります。
DRAMベースのインスタンスは、複数の社内Redisモジュールを統合して、ApsaraDB for Redisの適用範囲を拡張します。 これらのモジュールには、exString (Redis文字列機能を強化するコマンドを含む) 、exHash、exZset、GIS、Bloom、Doc、TS、Cpc、Roaring、Search、およびVectorが含まれます。 これらのモジュールは、複雑なシナリオでのビジネス開発を簡素化し、ビジネスイノベーションに集中できるようにします。
Redis 7.0または6.0と互換性のあるDRAMベースのインスタンスは、上記のすべてのデータ構造をサポートしています。
Redis 5.0と互換性のあるDRAMベースのインスタンスは、TairVector以外の前述のすべてのデータ構造をサポートします。
エンタープライズグレードの機能
エンタープライズグレードの機能 | 説明 |
データフラッシュバック機能を有効にすると、ApsaraDB for Redisは最大7日間、追加専用ファイル (AOF) バックアップデータを保持します。 保持期間中に、インスタンスを作成し、指定した時点のバックアップデータを新しいインスタンスに復元するために、正確な時点を指定できます。 | |
プロキシクエリキャッシュ機能を有効にすると、設定されたプロキシノードはホットキーのリクエストとレスポンスをキャッシュします。 特定の有効期間内にクライアントから同じリクエストを受信した場合、ApsaraDB for Redisはキャッシュからリクエストに対するレスポンスを取得し、そのレスポンスをクライアントに返します。 このプロセス中、ApsaraDB for Redisはバックエンドデータシャードと対話する必要はありません。 詳細については、「プロキシクエリキャッシュを使用してホットキーによる問題に対処する」をご参照ください。 | |
Global Distributed Cache for Redisは、ApsaraDB for Redisに基づいて開発されたアクティブな地理的冗長性データベースシステムです。 Redisのグローバル分散キャッシュは、異なるリージョンの複数のサイトが同時にサービスを提供するビジネスシナリオをサポートします。 これは、企業がAlibabaのアクティブな地理的冗長性アーキテクチャを複製するのに役立ちます。 | |
DTSを使用した双方向データ同期 | Data Transmission Service (DTS) は、ApsaraDB for Redis Enhanced Edition (Tair) インスタンス間の双方向データ同期をサポートしています。 この同期ソリューションは、アクティブなジオ冗長性やジオディザスタリカバリなどのシナリオに適しています。 詳細については、「Tairインスタンス間の双方向データ同期の設定」をご参照ください。 DTSの詳細については、DTSとは何ですか? |
よくある質問
クライアントが新しいデータモジュールからのコマンドをサポートしていない場合はどうすればよいですか?
クライアントでコマンドを使用する前に、アプリケーションコードで新しいデータモジュールからコマンドを定義できます。 これらのコマンドの組み込みサポートを提供するTairクライアントを使用することもできます。 詳細については、「Tairクライアント」をご参照ください。