当前位置:   article > 正文

实现的redis布隆过滤器_基于Redis数据库,实现分布式布隆过滤器,用于网络爬虫URL去重...

使用布隆过滤器去重url存入redis

回顾

使用Python pybloom包实现布隆过滤器,可用于单机版网络爬虫中的URL去重

但是针对分布式网络爬虫,共用一份去重数据,保证去重数据一致性,这就需要实现具备分布式能力的布隆过滤器!

使用Redis构建布隆过滤器

利用 Redis的bitmap 位数组数据类型,构建布隆过滤器。

基于Redis构建布隆过滤器优势:

  1. 解决布隆过滤器数据持久化问题
  2. 通过Redis实现布隆过滤器数据共享,实现并发
  3. Redis支持分布式,可以利用其这一特性,构建分布式布隆过滤器,解决布隆过滤器扩展问题

分布式布隆过滤器准备

  1. 使用Python作为开发语言
  2. 基于Redis bitmap数据类型实现
  3. 布隆过滤器哈希函数:采用Murmur hash,Python对应实现模块mmh3;
  4. 布隆过滤器参数m,n,k取值:
  • k – 哈希函数个数,这里取k=10,10个哈希函数 = Murmur hash + 10个固定盐值
  • n – 布隆过滤器加入字符串数量
  • m – 位数组的长度,n = 20m

补充:Murmur hash是一种非加密型哈希函数,适用于一般的哈希检索操作,算法随机分布特性好,计算性能快,又有Python对应实现

分布式布隆过滤器代码实现

6415ecade8e90d313badd3190b0c63ef.png

最后

想要源代码,快来私信我吧!

雷那编程,定期更新编程技术文章!

喜欢我的朋友们,麻烦点一波关注,谢谢!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/497469
推荐阅读
相关标签
  

闽ICP备14008679号