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