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
命令并尝试不同的值。