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

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

最終更新日:May 29, 2025

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

メリット

項目

説明

互換性

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

パフォーマンス

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

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

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

  • DRAMベースインスタンスは、I/O スレッドで完全データ同期タスクと増分データ同期タスクを実行して、同期を高速化します。

同期モード

準同期レプリケーションモードが追加でサポートされています。このモードでは、クライアントによって開始された更新がマスターノードで実行された後、マスターノードはログをレプリカノードに複製します。レプリカノードがログの受信を確認した後にのみ、クライアントに応答が返されます。これにより、高可用性スイッチオーバー中にデータが失われることがありません。

デプロイメントアーキテクチャ

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

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

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

データセキュリティ

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

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

シナリオ

Tair DRAMベースインスタンスは、ライブストリーミング、フラッシュセール、オンライン教育などのシナリオに適しています。次のセクションでは、典型的なシナリオについて説明します。

  • シナリオ 1:フラッシュセール中、一部のキャッシュされたホットキーの QPS が 200,000 を超える場合があります。Community Edition インスタンスはこの要件を満たすことができません。

    標準 DRAMベースインスタンスは、パフォーマンスの問題なく、フラッシュセール中のリクエストを効率的に処理できます。

  • シナリオ 2:Community Edition クラスタインスタンスには、データベーストランザクションと Lua スクリプトに制限があります。

    DRAMベースインスタンスは高パフォーマンスを提供し、Community Edition クラスタインスタンスのコマンドの使用制限をなくします。

  • シナリオ 3:1 つのマスターノードと複数のレプリカノードで構成されるセルフマネージド Redis クラスターを作成しました。ワークロードが増加するにつれて、レプリカノードの数と O&M コストが増加します。

    読み書き分離アーキテクチャを使用する DRAMベースインスタンスは、1 つのデータノードと最大 5 つの読み取り専用レプリカを提供して、数百万の QPS を処理するのに役立ちます。

  • シナリオ 4:数千万の QPS を処理するためにセルフマネージド Redis クラスターを作成しました。ワークロードが増加するにつれて、データシャードの数と O&M コストが増加します。

    DRAMベースクラスタインスタンスは、クラスターを 3 分の 2 に縮小し、O&M コストを大幅に削減できます。

スレッディングモデルの比較

スレッディングモデル

説明

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

Community Edition インスタンスとネイティブ Redis データベースは、シングルスレッディングモデルを使用します。リクエスト処理中、Community 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 のマルチスレッドモデルは、Redis 6.0 より前のメジャーバージョンのシングルスレッディングモデルの最大 2 倍のパフォーマンスを提供するために、大量の CPU リソースを消費します。DRAMベースインスタンスの Real Multi-I/O モデルは、完全に高速化された I/O スレッドを提供して、多数の同時接続を維持し、スループットを線形的に向上させます。

パフォーマンス比較

Community Edition インスタンスは、ネイティブ Redis データベースと同じシングルスレッディングモデルを使用します。シングルスレッディングモデルでは、各データノードは 80,000 ~ 100,000 QPS をサポートします。Tair DRAMベースインスタンスはマルチスレッドモデルを使用しており、I/O スレッド、ワーカースレッド、および補助スレッドがリクエストを並列処理できます。DRAMベースインスタンスの各データノードは、Community Edition インスタンスの各データノードの約 3 倍のパフォーマンスを提供します。次の表は、Community Edition インスタンスとさまざまなアーキテクチャの Tair DRAMベースインスタンス、およびそれらのユースケースの比較を示しています。

アーキテクチャ

Community Edition インスタンス

Tair DRAMベースインスタンス

標準アーキテクチャ

単一ノードで必要な QPS が 100,000 を超える場合、これらのインスタンスは適していません。

単一ノードで必要な QPS が 100,000 を超える場合、これらのインスタンスは適しています。

クラスターアーキテクチャ

クラスタインスタンスは複数のデータノードで構成されます。各データノードは、標準インスタンスと同様のパフォーマンスを提供します。データノードがホットデータを格納し、ホットデータに対する大量の同時リクエストを受信すると、データノードに格納されている他のデータの読み取りおよび書き込み操作に影響が及ぶ可能性があります。その結果、データノードのパフォーマンスが低下します。

これらのインスタンスは、低いメンテナンスコストでホットデータの読み取りと書き込みに高パフォーマンスを提供します。

読み書き分離アーキテクチャ

これらのインスタンスは高い読み取りパフォーマンスを提供し、読み取り操作の数が書き込み操作の数よりも多いシナリオに適しています。ただし、これらのインスタンスは、多数の同時書き込み操作をサポートできません。

これらのインスタンスは高い読み取りパフォーマンスを提供し、多数の同時書き込み操作をサポートできます。これらのインスタンスは、多数の書き込み操作を処理する必要があるが、読み取り操作の数が書き込み操作の数よりも多いシナリオに適しています。

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

オープンソース Redis と同様に、Community Edition は、String、List、Hash、Set、Sorted Set、Stream など、さまざまなデータ構造をサポートしています。これらのデータ構造は、一般的な開発ワークロードをサポートするには十分ですが、高度なワークロードには不十分です。高度なワークロードを管理するには、アプリケーションデータを変更するか、Lua スクリプトを実行する必要があります。

DRAMベースインスタンスは、複数の社内 Tair モジュールを統合して、Tair の適用範囲を拡大します。これらのモジュールには、exString (Redis 文字列機能を強化するコマンドを含む)、exHashexZsetGISBloomDocTSCpcRoaringSearchVector が含まれます。これらのモジュールは、複雑なシナリオでのビジネス開発を簡素化し、ビジネスイノベーションに集中できるようにします。

説明
  • Redis 7.0 または 6.0 と互換性のある DRAMベースインスタンス は、上記のすべてのデータ構造をサポートしています。

  • Redis 5.0 と互換性のある DRAMベースインスタンス は、TairVector 以外の上記のすべてのデータ構造をサポートしています。

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

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

説明

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

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

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

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

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

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

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

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

よくある質問

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

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