Redis Bloom Filter 是一种基于布隆过滤器的数据结构,用于检测一个元素是否在一个集合中
BF.RESERVE key_name size num_hash_functions:预留一个名为 key_name 的布隆过滤器,大小为 size(以字节为单位),使用 num_hash_functions 个哈希函数。例如:BF.RESERVE my_bloom_filter 1000000 3
这将创建一个名为 my_bloom_filter 的布隆过滤器,大小为 1000000 字节,使用 3 个哈希函数。
BF.ADD key_name item:向名为 key_name 的布隆过滤器中添加一个元素 item。例如:BF.ADD my_bloom_filter hello
BF.ADD my_bloom_filter world
这将向 my_bloom_filter 中添加两个元素:hello 和 world。
BF.EXISTS key_name item:检查名为 key_name 的布隆过滤器中是否存在元素 item。如果存在,返回 1;否则返回 0。例如:BF.EXISTS my_bloom_filter hello
BF.EXISTS my_bloom_filter world
这将检查 my_bloom_filter 中是否存在 hello 和 world。如果存在,将返回 1;否则返回 0。
BF.DELETE key_name item:从名为 key_name 的布隆过滤器中删除一个元素 item。例如:BF.DELETE my_bloom_filter hello
这将从 my_bloom_filter 中删除 hello 元素。
BF.INFO key_name:获取名为 key_name 的布隆过滤器的统计信息。例如:BF.INFO my_bloom_filter
这将返回一个包含布隆过滤器信息的 JSON 对象,包括大小、哈希函数数量、元素数量、误报率等。
请注意,布隆过滤器的误报率与其大小和哈希函数数量有关。较大的过滤器具有较低的误报率,但需要更多的内存。要找到合适的参数,可以使用 BF.RESERVE 命令并尝试不同的值。