Azure Cache for Redis での Redis モジュールの使用
Azure Cache for Redis では、Redis モジュールをライブラリとして使用して、コア Redis ソフトウェアにデータ構造と機能を追加できます。 モジュールは、Enterprise レベルのキャッシュを作成するときに追加します。
Enterprise キャッシュの作成の詳細については、「クイックスタート: Redis Enterprise キャッシュを作成する」を参照してください。
モジュールは、オープンソースの Redis 4.0 で導入されました。 モジュールは、bloom フィルターと cuckoo フィルターのような検索機能とデータ構造などの機能を追加することで、Redis のユース ケースを拡張します。
Redis モジュールの適用範囲
いくつかの一般的なモジュールを Azure Cache for Redis の Enterprise レベルで使用できます。
モジュール | Basic、Standard、Premium | エンタープライズ | Enterprise Flash |
---|---|---|---|
RediSearch | いいえ | はい | はい (プレビュー) |
RedisBloom | いいえ | 有効 | いいえ |
RedisTimeSeries | いいえ | 有効 | いいえ |
RedisJSON | いいえ | イエス | はい |
注意
現在、Azure Cache for Redis にモジュールを手動で読み込むことはできません。 モジュールのバージョンを手動で更新することもできません。
アクティブ geo レプリケーションでのモジュールの使用
アクティブ geo レプリケーションと同時に使用できるのは、RediSearch
と RedisJSON
モジュールのみです。
これらのモジュールを使用すると、アクティブ/アクティブ構成で同期されるキャッシュのグループ間で検索を実装できます。 また、アクティブ/アクティブ構成で JSON 構造を検索することもできます。
クライアント ライブラリのサポート
標準 Redis クライアント ライブラリがどの程度サポートされるかは、モジュールごとに異なります。 いくつかのモジュールでは、クライアント サポートが強化された固有のライブラリを使用できます。 どのクライアント ライブラリがサポートされるかの詳細については、Redis の各モジュールのドキュメント ページを確認してください。
キャッシュへのモジュールの追加
Enterprise レベルのキャッシュを作成するときにモジュールを追加する必要があります。 新しいキャッシュを作成するときに 1 つ以上のモジュールを追加するには、Enterprise レベルのキャッシュの [詳細設定] タブの設定を使用します。
使用可能なモジュールをすべて追加することも、特定のモジュールのみを選択してインストールすることもできます。
重要
モジュールは、Azure Cache for Redis インスタンスを作成するときに有効になっている必要があります。
詳細については、「クイックスタート: Redis Enterprise キャッシュを作成する」を参照してください。
モジュール
新しい Enterprise キャッシュを作成するときには、次のモジュールを使用できます。
RediSearch
RediSearch モジュールは、低待機時間のパフォーマンスと強力な検索機能を兼ね備えたリアルタイム検索エンジンをキャッシュに追加します。
次のような機能が含まれます。
- 複数フィールドのクエリ
- 集約
- プレフィックス検索、あいまい検索、ふりがなベースの検索
- オートコンプリート候補
- geo フィルタリング
- ブール型クエリ
さらに、RediSearch は、セカンダリ インデックスとして機能できます。これにより、キーと値の構造を超えてキャッシュを拡張し、より高度なクエリを提供することができます。
RediSearch には、K ニアレスト ネイバー (KNN) 検索などのベクトルの類似性のクエリを実行する機能も含まれています。 この機能では、Azure Cache for Redis をベクトル データベースとして使用できます。これは、機械学習モデルによって生成される埋め込みベクトルの比較を必要とするセマンティック応答エンジンや他のアプリケーションなどの AI ユース ケースで役立ちます。
RediSearch は、リアルタイム インベントリ、エンタープライズ検索、外部データベースのインデックス作成など、さまざまなユース ケースで使用できます。 詳細については、RediSearch のドキュメント ページを参照してください。
重要
RediSearch モジュールでは、Enterprise
クラスタリング ポリシーと NoEviction
削除ポリシーを使用する必要があります。 詳細については、「Enterprise でのクラスタリング」と「メモリ ポリシー」を参照してください
RedisBloom
RedisBloom は、bloom フィルター、cuckoo フィルター、count-min sketch、top-k という 4 つの確率論的データ構造を Redis サーバーに追加します。 これらの各データ構造は、完全な正確性を犠牲にして、高速化とメモリ効率の向上を実現する方法を提供します。
データ構造 | 説明 | サンプル アプリケーション |
---|---|---|
bloom フィルターと cuckoo フィルター | ある項目が (a) 確実にセット内に含まれていない、または (b) セット内に含まれている可能性がある、のいずれであるかを示します。 | 電子メールがユーザーに既に送信されたかどうかを確認します |
count-min sketch | ストリーム内のイベントの頻度を判別します | IoT デバイスが摂氏 0 度以下の温度を報告した回数をカウントします。 |
top-k | k 個の最も頻繁に出現する項目を特定します |
「戦争と平和」で最も頻繁に使用されている単語を判別します。 (たとえば、k = 50 に設定すると、この本の中で最も頻出する 50 個の単語が返されます) |
bloom フィルターと cuckoo フィルターは互いに似ていますが、それぞれにいくつかの固有の長所と短所があります。その説明はこのドキュメントの範囲外です。
詳細については、「RedisBloom」を参照してください。
RedisTimeSeries
RedisTimeSeries モジュールは、高スループットの時系列機能をキャッシュに追加します。 このデータ構造は、大量の受信データに対応するように最適化されていて、時系列データを処理する次のような機能が含まれています。
- 集計クエリ (平均、最大値、標準偏差など)
- 時間ベースのクエリ (開始時刻や終了時刻など)
- ダウンサンプリング/デシメーション
- セカンダリ インデックス作成のためのデータ ラベル付け
- 構成可能な保持期間
このモジュールは、IoT テレメトリ、アプリケーション監視、異常検出など、ストリーミング データの監視を伴う多くのアプリケーションに役立ちます。
詳細については、「RedisTimeSeries」を参照してください。
RedisJSON
RedisJSON モジュールは、JSON 形式のデータを格納、クエリ、検索する機能を追加します。 この機能は、キャッシュ内にドキュメントのようなデータを格納するために役立ちます。
次のような機能が含まれます。
- JSON 標準の完全なサポート
- オブジェクト、数値、配列、文字列など、すべての JSON データ型に対する幅広い操作
- ドキュメント内の要素を選択して更新するための専用の構文と高速アクセス
RedisJSON モジュールは、Redis サーバー内のデータの統合されたインデックス作成とクエリを提供するために、RediSearch モジュールとも併用できるように設計されています。 両方のモジュールを組み合わせて使用すると、JSON オブジェクト内の特定のデータ ポイントをすばやく取得するための強力なツールになります。
RedisJSON の一般的なユース ケースには、製品カタログの検索、ユーザー プロファイルの管理、JSON 構造化データのキャッシュなどの応用例があります。
詳細については、「RedisJSON」を参照してください。
Note
FT.CONFIG
コマンドは、モジュール構成パラメーターの更新に対してはサポートされていません。 ただし、これは、管理 API を使用するときにモジュールを構成する引数を渡すことによって実現できます。 たとえば、REST API、Azure CLI、または PowerShell で args
パラメーターを使用して RedisBloom モジュールの ERROR_RATE
と INITIAL_SIZE
のプロパティを構成するサンプルを確認できます。