建议先关注、点赞、收藏后再阅读。
import redis import mmh3 class BloomFilter: def __init__(self, redis_conn, num_hashes, bit_size): self.redis_conn = redis_conn self.num_hashes = num_hashes self.bit_size = bit_size def add(self, element): for seed in range(self.num_hashes): hash_value = mmh3.hash(element, seed) % self.bit_size self.redis_conn.setbit('bloom_filter', hash_value, 1) def exists(self, element): for seed in range(self.num_hashes): hash_value = mmh3.hash(element, seed) % self.bit_size if self.redis_conn.getbit('bloom_filter', hash_value) == 0: return False return True # 创建Redis连接 redis_conn = redis.Redis(host='localhost', port=6379, db=0) # 创建布隆过滤器对象 bloom_filter = BloomFilter(redis_conn, 3, 100000) # 添加元素到布隆过滤器 bloom_filter.add('apple') bloom_filter.add('banana') # 判断元素是否存在于布隆过滤器 print(bloom_filter.exists('apple')) # 输出 True print(bloom_filter.exists('orange')) # 输出 False
以上是布隆过滤器的一些常见限制和缺陷。