すべてのプロダクト
Search
ドキュメントセンター

Tair (Redis® OSS-Compatible):DRAMベースのインスタンス

最終更新日:Dec 06, 2024

Tair DRAMベースのインスタンスは、ホットデータに対する同時並行性の高い読み取りおよび書き込み操作が多数含まれ、Redis Open-Source Editionインスタンスよりも高いパフォーマンスが必要なシナリオに適しています。 Redis Open-Source Editionインスタンスと比較して、DRAMベースのインスタンスは、マルチスレッドのパフォーマンスの向上や複数の拡張データ構造の統合など、より多くの利点を提供します。

メリット

項目

説明

互換性

  • DRAMベースのインスタンスはネイティブRedisと完全に互換性があり、ビジネスコードを変更する必要はありません。 これらは、Redis 7.0Redis 6.0、およびRedis 5.0との互換性を提供します。

パフォーマンス

  • DRAMベースのインスタンスはマルチスレッドモデルを使用し、同じ仕様のRedis Open-Source Editionインスタンスの3倍のパフォーマンスを提供します。 これにより、ホットデータの高頻度の読み取りおよび書き込み要求に対するパフォーマンスの制限がなくなります。

  • ネイティブのRedisデータベースと比較して、DRAMベースのインスタンスは、1秒あたり多数のクエリ (QPS) をより高いパフォーマンスで高速に処理できます。

  • DRAMベースのインスタンスは、同時実行性の高いシナリオで安定したパフォーマンスを保証し、ピーク時のトラフィックスパイクによって引き起こされる接続の問題を軽減します。

  • DRAMベースのインスタンスは、同期を高速化するために、I/Oスレッドでフルデータ同期タスクと増分データ同期タスクを実行します。

配置アーキテクチャ

  • パフォーマンス強化型インスタンスは、標準、クラスター、および読み書き分離アーキテクチャをサポートしています。

複数のRedisモジュールの統合

  • DRAMベースのインスタンスは、複数の社内Tairモジュールを統合して、Tairの適用範囲を拡張します。 これらのモジュールには、exString (Redis文字列機能を強化するコマンドを含む) 、exHashexZsetGISBloomDocTSCpcRoaringSearch、およびVectorが含まれます。 これらのモジュールは、ストレージ構造と適時性に関する心配を取り除き、アプリケーション開発に集中できるようにします。

エンタープライズグレードの機能

データセキュリティ

  • DRAMベースのインスタンスは、データセキュリティを強化するためのSSL暗号化をサポートしています。

  • DRAMベースのインスタンスは、透過的データ暗号化 (TDE) をサポートしています。 TDEを使用してRedis Database (RDB) ファイルを暗号化および復号化し、データのセキュリティを確保できます。

シナリオ

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モデル

説明

図 1. シングルスレッドモデルのRedis 标准性能Redis实例的单线程模型

Redis Open-Source EditionインスタンスとネイティブRedisデータベースは、シングルスレッディングモデルを使用します。 リクエスト処理中、Redis Open-Source EditionインスタンスとネイティブRedisデータベースは、リクエストの読み取り、リクエストの解析、データの処理、およびレスポンスの送信を実行する必要があります。 このシナリオでは、ネットワークI/O操作とリクエストの解析により、使用可能なリソースのほとんどが消費されます。

図2. マルチスレッドモデルのTair 增强性能Redis实例的多线程模型

パフォーマンスを向上させるために、各Tair DRAMベースのインスタンスは複数のスレッドで実行され、これらのステップのタスクを並列に処理します。

  • I/O スレッドは、リクエストの読み取り、応答の送信、およびコマンドの解析に使用されます。

  • ワーカースレッドは、コマンドとタイマーイベントの処理に使用されます。

  • 補助スレッドを使用して、ノードのハートビートとステータスを監視し、高可用性を確保します。

各DRAMベースのインスタンスは、I/Oスレッド内の要求を読み取り、解析し、解析した要求をコマンドとしてキューに入れ、これらのコマンドをワーカースレッドに送信します。 次に、ワーカースレッドはコマンドを実行して要求を処理し、異なるキューを使用して応答をI/Oスレッドに送信します。

Tair DRAMベースのインスタンスは、最大4つの同時I/Oスレッドをサポートします。 ロック解除されたキューとパイプラインを使用して、I/Oスレッドとワーカースレッド間でデータを送信し、マルチスレッドのパフォーマンスを向上させます。

説明
  • マルチスレッドモデルは、String、List、Set、Hash、Zset、HyperLogLog、Geoなどの一般的なデータ構造および拡張データ構造のパフォーマンスを大幅に向上させます。

  • Pub/SubおよびブロッキングAPI操作は、ワーカースレッドでレプリケートされます。 この最適化によりAPI操作が加速され、スループットが向上し、パフォーマンスが約50% 向上します。

  • トランザクションとLuaスクリプトは、順番に実行されるように設計されています。 したがって、それらはマルチスレッディングモデルの恩恵を受けません。

説明

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文字列機能を強化するコマンドを含む) 、exHashexZsetGISBloomDocTSCpcRoaringSearch、およびVectorが含まれます。 これらのモジュールは、複雑なシナリオでのビジネス開発を簡素化し、ビジネスイノベーションに集中できるようにします。

説明

エンタープライズグレードの機能

エンタープライズグレードの機能

説明

ポイントインタイムによるデータ復元のためのデータフラッシュバック

Tairインスタンスのデータフラッシュバック機能を有効にすると、Tairはアペンド専用ファイル (AOF) バックアップデータを最大7日間保持します。 保持期間中に、インスタンスを作成し、指定した時点のバックアップデータを新しいインスタンスに復元するために、正確な時点を指定できます。

プロキシクエリキャッシュ

プロキシクエリキャッシュ機能を有効にすると、設定されたプロキシノードはホットキーのリクエストとレスポンスをキャッシュします。 特定の有効期間内に同じ要求がクライアントから受信された場合、Tairはキャッシュから要求に対する応答を取得し、応答をクライアントに返します。 このプロセス中、Tairはバックエンドデータシャードと対話する必要はありません。 詳細については、「プロキシクエリキャッシュを使用してホットキーによる問題に対処する」をご参照ください。

グローバル分散キャッシュ

Tair用のグローバル分散キャッシュは、Redis Open-Source Editionに基づいて開発されたアクティブな地理的冗長性データベースシステムです。 グローバル分散キャッシュは、異なるリージョンの複数のサイトが同時にサービスを提供するビジネスシナリオをサポートします。 これは、企業がAlibabaのアクティブな地理的冗長性アーキテクチャを複製するのに役立ちます。

DTSを使用した双方向データ同期

Data Transmission Service (DTS) は、Tairインスタンス間の双方向データ同期をサポートします。 この同期ソリューションは、アクティブなジオ冗長性やジオディザスタリカバリなどのシナリオに適しています。 詳細については、「Tairインスタンス間の双方向データ同期の設定」をご参照ください。

よくある質問

Q: クライアントが新しいモジュールによって提供されるコマンドをサポートしていない場合はどうすればよいですか?

クライアントでコマンドを使用する前に、アプリケーションコードで新しいデータモジュールからコマンドを定義できます。 これらのコマンドの組み込みサポートを提供するクライアントを使用することもできます。 詳細については、「クライアント」をご参照ください。