前言
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 官方文档