翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Bloom フィルターの開始方法
ElastiCache は Bloom フィルターデータ構造をサポートしています。これにより、要素がセットのメンバーであるかどうかをチェックするためのスペース効率の高い確率的データ構造が提供されます。Bloom フィルターを使用すると、誤検出が発生する可能性があります。フィルターは、その要素がセットに追加されていなくても、要素が存在することを誤って示す可能性があります。ただし、Bloom フィルターを使用すると、偽陰性を防ぐことができます。これは、その要素がセットに追加されていても、要素が存在しないという誤った兆候です。
fp レートを調整することで、潜在的な誤検出の割合をワークロードの優先レートに設定できます。容量 (Bloom フィルターが保持できる項目の数)、スケーリングプロパティと非スケーリングプロパティなどを設定することもできます。
サポートされているエンジンバージョンでクラスターを作成すると、Bloom データ型と関連するコマンドが自動的に使用可能になります。bloom
データ型は、、valkey-py
、 valkey-java
などの公式 Valkey クライアントライブラリの Bloom フィルターコマンド構文と API 互換性がありますvalkey-go
。既存の Bloom ベースの Valkey および Redis OSS アプリケーションを ElastiCache に簡単に移行できます。コマンドの完全なリストについては、「」を参照してくださいBloom フィルターコマンド。
Bloom 関連のメトリクス BloomFilterBasedCmds
、BloomFilterBasedCmdsLatency
、 BloomFilterBasedCmdsECPUs
は、このデータ型の使用状況をモニタリングするために CloudWatch に組み込まれています。詳細については、「Valkey と Redis OSS のメトリクス」を参照してください。
注記
Bloom フィルターを使用するには、ElastiCache Valkey 8.1 以降で を実行している必要があります。
ブルームデータ型は、他の非 Valkey ベースのブルームサービスと RDB 互換性がありません。
Bloom フィルターのデータ型の概要
ブルームフィルターは、スペース効率の高い確率的データ構造であり、要素を追加し、要素が存在するかどうかをチェックできます。フィルターが追加されていなくても、要素が存在することを誤って示す場合、誤検出が発生する可能性があります。ただし、ブルームフィルターは、偽陰性 (追加されても要素が存在しないことを誤って示す) が発生しないことを保証します。
ブルームフィルターのドキュメントの主なソースは、valkey.io ドキュメントページにあります。これには、次の情報が含まれます。
-
広告/イベントの重複排除
不正検出
有害なコンテンツ/スパムのフィルタリング
一意のユーザー検出
スケーリングブルームフィルターと非スケーリングブルームフィルターの違い
スケーリングブルームフィルターと非スケーリングブルームフィルターのどちらかを決定する方法
-
Bloom フィルターの調整可能なプロパティについて説明します。これには、誤検出率、容量、スケーリングプロパティと非スケーリングプロパティなどが含まれます。
-
-
ブルームフィルターがメモリ使用量の上限に達しているかどうか、および希望する容量に達するようにスケールできるかどうかを確認する方法に関する推奨事項と詳細。
-
BF.INFO
コマンドを使用して、 を使用してブルームフィルタードキュメントが消費するメモリの量を確認できます。
-
ブルームサイズ制限
単一の 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 コマンド
名前 | 説明 |
---|---|
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 の使用にのみ関連します。