URL 在 Redis 之上进行过滤:布隆过滤器或 HyperLogLog 数据结构

URL filtering on top of Redis: Bloom filters or HyperLogLog data structure

我想在 Redis 数据库之上为分布式爬虫系统实现 URL 过滤(例如,不要访问同一个 URL 两次,所以我需要以某种方式持续跟踪所有这些使用最小的内存指纹,不需要存储完整的 URLs,只需检查是否访问了某些特定的 URL)。 Bloom 过滤器在这种情况下听起来不错,我看到了一个用于 Redis 的本地模块来实现 Bloom 过滤器。但它也有内置的 HyperLogLog 数据结构,所以我想知道在我的场景中哪个是更好的选择。

布隆过滤器与 HyperLogLog 完全不同。布隆过滤器用于检查是否有重复项,而 HyperLogLog 用于不同的计数。在您的情况下,您应该使用布隆过滤器。

另请参阅 以了解它们的差异。