Bloom フィルターの開始方法 - Amazon ElastiCache

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Bloom フィルターの開始方法

ElastiCache は Bloom フィルターデータ構造をサポートしています。これにより、要素がセットのメンバーであるかどうかをチェックするためのスペース効率の高い確率的データ構造が提供されます。Bloom フィルターを使用すると、誤検出が発生する可能性があります。フィルターは、その要素がセットに追加されていなくても、要素が存在することを誤って示す可能性があります。ただし、Bloom フィルターを使用すると、偽陰性を防ぐことができます。これは、その要素がセットに追加されていても、要素が存在しないという誤った兆候です。

fp レートを調整することで、潜在的な誤検出の割合をワークロードの優先レートに設定できます。容量 (Bloom フィルターが保持できる項目の数)、スケーリングプロパティと非スケーリングプロパティなどを設定することもできます。

サポートされているエンジンバージョンでクラスターを作成すると、Bloom データ型と関連するコマンドが自動的に使用可能になります。bloom データ型は、、valkey-pyvalkey-javaなどの公式 Valkey クライアントライブラリの Bloom フィルターコマンド構文と API 互換性がありますvalkey-go。既存の Bloom ベースの Valkey および Redis OSS アプリケーションを ElastiCache に簡単に移行できます。コマンドの完全なリストについては、「」を参照してくださいBloom フィルターコマンド

Bloom 関連のメトリクス BloomFilterBasedCmdsBloomFilterBasedCmdsLatencyBloomFilterBasedCmdsECPUsは、このデータ型の使用状況をモニタリングするために CloudWatch に組み込まれています。詳細については、「Valkey と Redis OSS のメトリクス」を参照してください。

注記
  • Bloom フィルターを使用するには、ElastiCache Valkey 8.1 以降で を実行している必要があります。

  • ブルームデータ型は、他の非 Valkey ベースのブルームサービスと RDB 互換性がありません。

Bloom フィルターのデータ型の概要

ブルームフィルターは、スペース効率の高い確率的データ構造であり、要素を追加し、要素が存在するかどうかをチェックできます。フィルターが追加されていなくても、要素が存在することを誤って示す場合、誤検出が発生する可能性があります。ただし、ブルームフィルターは、偽陰性 (追加されても要素が存在しないことを誤って示す) が発生しないことを保証します。

ブルームフィルターのドキュメントの主なソースは、valkey.io ドキュメントページにあります。これには、次の情報が含まれます。

ブルームサイズ制限

単一の Bloom フィルターオブジェクトによるメモリの消費量は 128 MB に制限されています。BF.INFO <key> SIZE コマンドを使用して、Bloom フィルターによって消費されるメモリの量を確認できます。

ブルーム ACLs

データ型ごとの既存のカテゴリ (@string、@hash など) と同様に、新しいカテゴリ @bloom が追加され、Bloom コマンドとデータへのアクセスの管理が簡単になりました。他の既存の Valkey または Redis OSS コマンドは、@bloom カテゴリのメンバーではありません。

新しい Bloom コマンドを含めるように更新される既存の ACL カテゴリは、@read、@write、@fast の 3 つです。次の表は、適切なカテゴリへの Bloom コマンドのマッピングを示しています。

Bloom コマンド @read @write @fast @bloom

BF.ADD

y

y

y

BF.CARD

y

y

y

BF.EXISTS

y

y

y

BF.INFO

y

y

y

BF.INSERT

y

y

y

BF.MADD

y

y

y

BF.MEXISTS

y

y

y

BF.RESERVE

y

y

y

Bloom フィルター関連のメトリクス

ブルームデータ構造に関連する以下の CloudWatch メトリクスが用意されています。

CW メトリクス 単位 サーバーレス/独自設計 説明

BloomFilterBasedCmds

カウント

[Both] (両方)

読み取りコマンドと書き込みコマンドの両方を含む Bloom フィルターコマンドの総数。

BloomFilterBasedCmdsLatency

マイクロ秒

セルフマネージド型

読み取りコマンドと書き込みコマンドの両方を含む、すべての Bloom フィルターコマンドのレイテンシー。

BloomFilterBasedCmdsECPUs

カウント

サーバーレス

読み取りコマンドと書き込みコマンドの両方を含む、すべての Bloom フィルターコマンドによって消費ECPUs。

Bloom フィルターコマンド

Bloom Filter コマンドは、Valkey.io ウェブサイトに記載されています。各コマンドページには、構文、動作、戻り値、潜在的なエラー条件など、ブルームコマンドの包括的な概要が表示されます。

名前 説明
BF.ADD

ブルームフィルターに 1 つの項目を追加します。フィルターがまだ存在しない場合は、作成されます。

BF.CARD

ブルームフィルターの基数を返します。

BF.EXISTS

ブルームフィルターに指定された項目が含まれているかどうかを決定します。

BF.INFO

特定のブルームフィルターの使用情報とプロパティを返します。

BF.INSERT

0 個以上の項目を含むブルームフィルターを作成するか、既存のブルームフィルターに項目を追加します。

BF.MADD

ブルームフィルターに 1 つ以上の項目を追加します。

BF.MEXISTS

ブルームフィルターに 1 つ以上の項目が含まれているかどうかを決定します。

BF.RESERVE

指定されたプロパティを使用して空のブルームフィルターを作成します。

注記

BF.LOAD は ElastiCache ではサポートされていません。これは、ElastiCache がサポートしていない AOF の使用にのみ関連します。