【问题标题】:URL filtering on top of Redis: Bloom filters or HyperLogLog data structureRedis 之上的 URL 过滤:Bloom 过滤器或 HyperLogLog 数据结构
【发布时间】:2019-02-22 11:01:18
【问题描述】:

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

【问题讨论】:

  • 如果您使用 Bloom 过滤器,那么您会得到误报,因此它显示一个 URL 被访问了,而实际上并没有。这适合您的用例吗? (顺便不能用HyperLogLog)
  • @ThomasMueller 当然,据我所知,无论如何我可以为布隆过滤器自定义此速率

标签: redis bloom-filter hyperloglog


【解决方案1】:

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

另请参阅this question 了解它们的区别。

【讨论】:

    猜你喜欢
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 2016-06-24
    相关资源
    最近更新 更多