Tair DRAM ベースインスタンスは、ホットデータに対する高同時読み書き操作を伴い、Redis Open-Source Edition インスタンスが提供できるパフォーマンスよりも高いパフォーマンスを必要とするシナリオに適しています。Redis Open-Source Edition インスタンスと比較して、DRAM ベースインスタンスは、強化されたマルチスレッドパフォーマンスや複数の拡張データ構造の統合など、より多くの利点を提供します。
利点
項目 | 説明 |
互換性 | DRAM ベースインスタンスはネイティブの Redis と完全に互換性があり、ビジネスコードの変更は不要です。Redis 7.0、Redis 6.0、および Redis 5.0 との互換性を提供します。 |
パフォーマンス |
|
同期モード | さらに 準同期レプリケーションモード がサポートされています。このモードでは、クライアントによって開始された更新がマスターノードで実行された後、マスターノードはログをレプリカノードに複製します。レプリカノードがログの受信を確認した後にのみ、クライアントに応答が返されます。これにより、高可用性スイッチオーバー中にデータが失われないことが保証されます。 |
デプロイメントアーキテクチャ | DRAM ベースインスタンスは、標準、クラスター、および読み書き分離アーキテクチャをサポートします。 |
データ構造モジュールの統合 | DRAM ベースインスタンスは、複数の自社開発 Tair モジュールを統合して、Tair の適用範囲を拡大します。これらのモジュールには、exString ( Redis 文字列機能を強化するコマンド を含む)、exHash、exZset、GIS、Bloom、Doc、TS、Cpc、Roaring、Search、および Vector が含まれます。これらのモジュールにより、ストレージ構造や適時性に関する懸念が解消され、アプリケーション開発に集中できます。 |
エンタープライズグレードの機能 | DRAM ベースインスタンスは、データフラッシュバック、プロキシクエリキャッシュ、Redis グローバル分散キャッシュなど、いくつかのエンタープライズグレードの機能をサポートしています。詳細については、「データフラッシュバックを使用して特定の時点のデータを復元する」、「プロキシクエリキャッシュを使用してホットキーによる問題に対処する」、および「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 コストを大幅に削減できます。
スレッドモデルの比較
スレッドアーキテクチャ | 説明 |
図 1. Redis シングルスレッドモデル | Redis Open-Source Edition とネイティブ Redis はシングルスレッドモデルを使用します。データ処理フローは次のとおりです: リクエストの読み取り、リクエストの解析、データの処理、および応答の送信。この状況では、ネットワーク I/O 操作とリクエスト解析が利用可能なリソースのほとんどを消費します。 |
図 2. Tair マルチスレッドモデル | Tair DRAM ベースインスタンスは、さまざまなサービス段階でタスクを分離し、明確な分業体制を持つ複数のスレッドを使用してタスクを並列処理することで、パフォーマンスを向上させます。
各 DRAM ベースインスタンスは、I/O スレッドでリクエストを読み取って解析し、解析されたリクエストをコマンドとしてキューに配置し、これらのコマンドをワーカースレッドに送信します。その後、ワーカースレッドはコマンドを実行してリクエストを処理し、別のキューを使用して応答を I/O スレッドに送信します。 Tair DRAM ベースインスタンスは、最大 4 つの I/O スレッドの同時実行をサポートします。ロック解除されたキューとパイプラインを使用して、I/O スレッドとワーカースレッド間でデータを転送し、マルチスレッドのパフォーマンスを向上させます。 説明
|
Redis 6.0 のマルチスレッド (パフォーマンスを最大 2 倍向上させますが、高い CPU リソースを消費します) とは異なり、DRAM ベースインスタンスの Real Multi-IO は 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 Open-Source Edition インスタンス | 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 グローバル分散キャッシュは、Redis Open-Source Edition をベースに開発されたアクティブ地理的冗長性データベースシステムです。Redis グローバル分散キャッシュは、異なるリージョンの複数のサイトが同時にサービスを提供するビジネスシナリオをサポートします。これにより、企業は Alibaba のアクティブ地理的冗長性アーキテクチャを複製できます。 | |
DTS を使用した双方向データ同期 | Data Transmission Service (DTS) は、Tair インスタンス間の双方向データ同期をサポートしています。この同期ソリューションは、アクティブ地理的冗長性やジオディザスタリカバリなどのシナリオに適しています。詳細については、「Tair インスタンス間の双方向データ同期を設定する」をご参照ください。 |
よくある質問
Q: クライアントが新しいモジュールによって提供されるコマンドをサポートしていない場合はどうすればよいですか?
A: クライアントでコマンドを使用する前に、アプリケーションコードで新しいデータモジュールのコマンドを定義できます。これらのコマンドを組み込みでサポートするクライアントを使用することもできます。詳細については、「クライアント」をご参照ください。

