爬虫数据去重、存入数据库

本文介绍了三种数据去重的方法:使用MongoDB的复合索引、通过Redis存储哈希指纹以及利用布隆过滤器;并讨论了不同规模数据存储的选择,如MySQL与MongoDB的应用场景。同时,详细解析了布隆过滤器的设计原理与参数计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

三种数据去重方式

1.数据存入mongodb时,可以对关键字进行复合索引。
2.对数据的关键字进行哈希映射,生成的指纹判断是否存在redis的指纹集合中,如果存在,说明数据重复。
3.布隆过滤器,可以实现大量数据去重。

存入数据库

  • 根据数据量及用途
    • 数据量在2000w以下mongdb、mysql都可以,超过2000w,使用mongdb。
    • 若数据用于网页展示,存入mysql,用于数据分析,存入mongdb。
布隆过滤器
  • 实现原理:hashmap
    • 可以将值映射到HashMap的Key,在O(1)时间复杂度内返回结果,缺点:存储容量占比高,考虑到负载因子的存在,通常空间是不能被用满的,而一旦你的值很多例如上亿的时候,那 HashMap 占据的内存大小就变得很可观了。
    • hashmap的默认初始长度16,每次扩展是2的幂
    • index=HashCode(key)&(Length-1)
  • 布隆:将一个值映射到布隆过滤器,使用不同的哈希函数生成多个哈希值,并对每个哈希值指定对应的位数组位置。
  • 设计:
    • m= - n*lnp / (ln2)**2
      • p 失误率 n 样本数量 m 数组长度
    • k=ln2 * m/n
      • k 哈希函数个数
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值