我想在Redis数据库之上为分布式爬网系统实现URL过滤(例如,不要两次访问相同的URL,因此我需要以某种方式以最少的内存指纹来跟踪所有这些URL,因此无需要存储完整的URL,只需检查是否已访问某些特定的URL)。在这种情况下,Bloom过滤器听起来很不错,我看到了Redis的本机模块实现Bloom过滤器。但是它也具有内置的HyperLogLog数据结构,因此我想知道哪种方案在我的方案中是更好的选择。
答案 0 :(得分:1)
布鲁姆过滤器与HyperLogLog完全不同。布隆过滤器用于检查是否有重复的项目,而HyperLogLog用于计数。在这种情况下,您应该使用Bloom过滤器。
另请参见this question。