本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Bloom 篩選條件入門
ElastiCache 支援 Bloom 篩選資料結構,可提供空間效率高的概率資料結構,以檢查 元素是否為集合的成員。使用 Bloom 篩選條件時,可能是誤報 - 篩選條件可能不正確地指出 元素存在,即使該元素未新增至集合。不過,使用 Bloom 篩選條件可以防止誤判,不正確地指出 元素不存在,即使該元素已新增至集合。
您可以透過調整 fp 速率,將潛在的誤報百分比設定為工作負載的偏好速率。您也可以設定容量 (Bloom 篩選條件可以容納的項目數量)、擴展和非擴展屬性等。
使用支援的引擎版本建立叢集之後,Bloom 資料類型和相關聯的命令會自動可用。bloom
資料類型與官方 Valkey 用戶端程式庫的 Bloom filter 命令語法相容,包括 valkey-py
、 valkey-java
和 valkey-go
。您可以輕鬆將現有的 Bloom 型 Valkey 和 Redis OSS 應用程式遷移至 ElastiCache。如需命令的完整清單,請參閱 Bloom 篩選條件命令。
Bloom 相關指標 BloomFilterBasedCmds
、 BloomFilterBasedCmdsLatency
和 BloomFilterBasedCmdsECPUs
會併入 CloudWatch,以監控此資料類型的使用情況。如需詳細資訊,請參閱Valkey 和 Redis OSS 的指標。
注意
若要使用 Bloom 篩選條件,您必須在 ElastiCache Valkey 8.1 和更新版本上執行。
Bloom 資料類型與其他非 Valkey 型 Bloom 產品不相容。
Bloom 篩選條件資料類型概觀
Bloom 篩選條件是一種空間高效的概率資料結構,允許新增元素並檢查元素是否存在。如果篩選條件不正確地指出 元素存在,即使未新增,也可能出現誤報。不過,Bloom Filters 保證不會發生誤判 (錯誤表示元素不存在,即使已新增)。
如需 Bloom 篩選條件的主要文件來源,請參閱 https://valkey.io 文件頁面。這包含下列資訊:
-
廣告/事件重複資料刪除
詐騙偵測
篩選有害內容/垃圾郵件
唯一使用者偵測
-
如何在擴展和非擴展 Bloom 篩選條件之間做出決定
-
了解 Bloom 篩選條件的可調校屬性。這包括誤報率、容量、擴展和非擴展屬性等。
-
-
如何檢查 Bloom 篩選條件是否達到其記憶體用量限制,以及是否可以擴展以達到所需容量的建議和詳細資訊。
-
您可以使用 BF.INFO
命令,透過 特別檢查花粉篩選條件文件消耗的記憶體量。
-
Bloom 大小限制
單一 Bloom 篩選條件物件的記憶體使用量限制為 128 MB。您可以使用 BF.INFO <key> SIZE
命令,檢查 Bloom 篩選條件耗用的記憶體量。
Bloom ACLs
與現有的每個資料類型類別 (@string、@hash 等) 類似,新增了新類別 @bloom,以簡化對 Bloom 命令和資料的管理存取。沒有其他現有的 Valkey 或 Redis OSS 命令是 @bloom 類別的成員。
已更新 3 個現有的 ACL 類別,以包含新的 Bloom 命令:@read、@write 和 @fast。下表指出 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 篩選條件相關指標
提供與 Bloom 資料結構相關的下列 CloudWatch 指標:
CW 指標 | 單位 | 無伺服器/自行設計 | 描述 |
---|---|---|---|
BloomFilterBasedCmds |
計數 |
兩者 |
Bloom 篩選條件命令的總數,包括讀取和寫入命令。 |
BloomFilterBasedCmdsLatency |
微秒 |
自我管理 |
所有 Bloom 篩選條件命令的延遲,包括讀取和寫入命令。 |
BloomFilterBasedCmdsECPUs |
計數 |
無伺服器 |
所有 Bloom 篩選條件命令使用的 ECPUs,包括讀取和寫入命令。 |
Bloom 篩選條件命令
Bloom Filter 命令
名稱 | 描述 |
---|---|
BF.ADD |
將單一項目新增至 Bloom 篩選條件。如果篩選條件不存在,則會建立。 |
BF.CARD |
傳回 Bloom 篩選條件的基數。 |
BF.EXISTS |
決定 Bloom 篩選條件是否包含指定的項目。 |
BF.INFO |
傳回特定 Bloom 篩選條件的用量資訊和屬性。 |
BF.INSERT |
建立具有 0 個或更多項目的花粉篩選條件,或將項目新增至現有的花粉篩選條件。 |
BF.MADD |
將一或多個項目新增至花粉篩選條件。 |
BF.MEXISTS |
決定 Bloom 篩選條件是否包含 1 個或多個項目。 |
BF.RESERVE |
建立具有指定屬性的空花篩選條件。 |
注意
ElastiCache 不支援 BF.LOAD。它僅適用於 ElastiCache 不支援的 AOF 用量。