前言
RedisBloom 是 Redis 的一个概率数据类型模块,共提供了四种数据类型:Bloom Filter、Cuckoo Filter、Count-Min-Sketch、Top-K。其中,Bloom 和 Cuckoo 过滤器是用来推断(有一定的错误率)集合中是否存在某个 item。而 Count-Min-Sketch 以线性的内存空间估算出 item 数,Top-K 维护一个包含 K 个最频繁 item 的列表。
使用
1 |
|
JRedisBloom (Java 客户端)
1 |
|
Bloom Filter
BF.RESERVE
1 |
|
BF.ADD
1 |
|
BF.MADD
1 |
|
BF.INSERT
1 |
|
BF.EXISTS
1 |
|
BF.MEXISTS
1 |
|
BF.INFO
1 |
|
Cuckoo Filter
CF.RESERVE
1 |
|
CF.ADD
1 |
|
CF.ADDNX
1 |
|
CF.INSERT、CF.INSERTNX
1 |
|
CF.EXISTS
1 |
|
CF.DEL
1 |
|
CF.COUNT
1 |
|
CF.INFO
1 |
|
Count-Min-Sketch
后续有使用场景时再更新…
Top-K
后续有使用场景时再更新…
Bloom vs. Cuckoo
Bloom Filter 通常在插入 item 时,表现出更好的性能和伸缩性;而 Cuckoo Filter 在检查操作时更快,并且还支持删除 item 操作。
参考
[1] RedisBloom 官方文档