Tair (Redis OSS-compatible) は、String、List、Hash、Set、Sorted Set、Stream など、オープンソース Redis の基本的なデータ構造をサポートしています。これらのデータ構造は、ほとんどの開発ワークロードには十分ですが、複雑なワークロードには対応できません。複雑なワークロードを管理するには、大量のコードを記述するか、Lua スクリプトなどの複雑なアプローチを使用する必要があります。Tair (Enterprise Edition) は、Alibaba Cloud が自社開発した複数のデータ構造を統合しています。たとえば、exString (Redis 文字列機能を強化するコマンドを含む)、exHash、exZset、GIS、Bloom、Doc、TS、Cpc、Roaring、Search、Vector などです。これらのデータ構造により、Tair (Enterprise Edition) はより多くのシナリオをサポートし、アプリケーション開発を簡素化し、ビジネスコードを合理化できます。これにより、サービスパフォーマンスが向上し、ビジネスイノベーションに集中できます。
Redis 7.0 または 6.0 と互換性のあるDRAM ベースのインスタンスは、前述のすべてのデータ構造をサポートしています。
Redis 5.0 と互換性のあるDRAM ベースのインスタンスは、TairVector 以外の前述のすべてのデータ構造をサポートしています。
永続メモリ最適化インスタンスは、exString (Redis 文字列機能を強化するコマンドを含む)、exHash、Cpc と互換性があります。
Tair の拡張データ構造と Redis Stack のモジュール
次の表に、Tair に統合されたデータ構造と、Redis Stack Server モジュールとの比較を示します。
データ型 | Tair 拡張データ構造 | 説明 | |
文字列の機能強化 | N/A |
ベストプラクティス: TairString を使用してパフォーマンス専有型のオプティミスティックロックを実装する、TairString を使用して有界カウンターを実装する。 | |
ハッシュ | N/A | TairHash は、フィールドの有効期限とバージョン番号を指定できるデータ構造です。TairHash はより柔軟に使用でき、ほとんどのシナリオでアプリケーション開発を簡素化します。このデータ構造はオープンソースです。詳細については、「TairHash」をご参照ください。 ベストプラクティス: TairHash を使用して単一ユーザーからの複数デバイスログインを管理する。 | |
Zset | N/A | TairZset を使用すると、Double 型のスコアを 256 のディメンションに関してソートできます。TairZset を使用して、汎用リーダーボードと多次元リーダーボードを実装できます。このデータ構造はオープンソースです。詳細については、「TairZset」をご参照ください。 ベストプラクティス: TairZset を使用して多次元リーダーボードを実装する、TairZset を使用して分散リーダーボードを実装する。 | |
GeoSpatial | N/A | TairGIS は、R 木インデックスを使用し、地理情報システム (GIS) に関連する API をサポートするデータ構造です。TairGIS を使用して、点、線、ポリゴンをクエリできます。TairGIS を使用して、A が B を含むか、A が B に含まれるか、または A が B と交差するかどうかを確認できます。このデータ構造はオープンソースです。詳細については、「TairGIS」をご参照ください。 ベストプラクティス: TairGIS を使用してデジタルフェンスを実装する、TairGIS を使用してローカル購入サービスを実装する。 | |
Doc (JSON) | RedisJSON | RedisJSON と同様に、TairDoc は JSON 標準をサポートし、ドキュメントタイプのデータを格納するデータ構造です。TairDoc データはバイナリツリーとして格納され、JSON オブジェクトの子要素にすばやくアクセスできます。 | |
検索 | RediSearch | TairSearch は Elasticsearch と同様の構文を使用しますが、より多くのより優れたトークナイザーを提供してクエリパフォーマンスを向上させます。 | |
TimeSeries | RedisTimeSeries | RedisTimeSeries と比較して、TairTS はタグの機能を拡張します。TairTS では、タイムラインでの集約クエリをサポートするために、追加のハッシュレイヤーが追加されています。TairTS を使用して、過去の時系列データを更新または追加することもできます。 ベストプラクティス: TairTS を使用して高精度監視を実装する。 | |
スケッチ | RedisBloom | TairBloom は RedisBloom と互換性があり、動的スケーリングをサポートし、64 ビットのハッシュアルゴリズムを提供して、大量のデータの衝突の可能性を大幅に低減します。 ベストプラクティス: 推奨システムとクローラーシステム。詳細については、「Bloom」および「Bloom フィルターを使用してゲームイベントのプッシュ通知を管理する」をご参照ください。 | |
N/A | TairCpc は、圧縮確率カウンティング (CPC) スケッチに基づいて開発されたデータ構造です。これにより、少量のメモリでサンプリングされたデータに対してパフォーマンス専有型のコンピューティングを実行できます。TairCpc は、タンブリングウィンドウとスライドウィンドウをサポートして、データストリーミングをより適切に促進します。また、 | ||
ビットマップ | N/A | TairRoaring は、高い安定性を提供する効率的なコンピューティングモジュールです。複数のビットマップに対する操作をサポートし、パフォーマンスとスペース効率を向上させます。 ベストプラクティス: TairRoaring を使用してユーザーを選択する。 | |
ベクター | Redis Search (Vector Similarity) | TairVector は、ベクターのパフォーマンス専有型のリアルタイムストレージと取得を提供する Tair の自社開発データ構造です。 ベストプラクティス: |
Tair Enterprise Edition クライアント
Tair 拡張データ構造をより便利にご利用いただけるように、Tair (Redis OSS-compatible) はいくつかの Redis クライアントをベースに Tair クライアントを開発しました。Tair クライアントを通じて Tair 拡張データ構造を直接呼び出すことができます。
GitHub から次のクライアントを入手し、そのサンプルコードを参照できます。
Tair クライアント | プログラミング言語 | 説明 |
Java | Jedis に基づいて開発された Tair クライアント。 | |
.NET | .NET Core 5.0 および StackExchange.Redis 2.5.61 に基づいて開発された Tair クライアント。 | |
Go | go-redis に基づいて開発された Tair クライアント。 | |
Python | redis-py に基づいて開発された Tair クライアント。 |
よくある質問
Q: Tair (Redis OSS-compatible) は Redis Stack Server をサポートしていますか?
A: Redis のオープンソースライセンスによる制限のため、Community Edition と Tair (Enterprise Edition) は Redis Stack Server をサポートしていません。
この制限を回避するために、Tair (Enterprise Edition) は、exString (Redis 文字列機能を強化するコマンドを含む)、exHash、exZset、GIS、Bloom、Doc、TS、Cpc、Roaring、Search、Vector を含む自社開発の拡張データ構造を提供しています。Redis Stack Server と比較して、Tair (Enterprise Edition) はより広範なデータ構造をサポートし、特定のデータ構造で優れたパフォーマンスを発揮します。
Q: Tair 拡張データ構造の生存時間 (TTL) を設定するにはどうすればよいですか?
A: exString、exHash、Cpc の場合、TTL はそれぞれのコマンドを使用して直接設定できます。他の Tair 拡張データ構造については、
EXPIRE | EXPIREAT <Keyname>コマンドを使用してキーの TTL を設定できます。たとえば、EXPIRE foo 60を使用して、キー "foo" の TTL を 60 秒に設定できます。