url去重方案

url去重方案:

1. 通过数据库进行url的去重,获取一条数据的时候,将url也保存到数据库中,在获取其他url的时候,先从数据库中查询是否存在这个url,如果存在就丢弃,反之就保存。效率太低。

2. 通过set(),在内存中符url进行去重。 对内存的占用太高。

eg:

100000000条url * 50字符 * 2bytes /1024(KB)/1024(MB)/1024(GB) = 9GB

3. 通过set(),但是不是将url直接保存在set集合中,而是通过一定的加密方式加密后,将加密后的数据保存在set集合中。scrapy框架采用的就是这种方式。md5加密之后数据长度变得统一,变成16位的。

100000000条url * 16字符 * 2bytes /1024(KB)/1024(MB)/1024(GB) = 1GB

4. 布隆过滤

100000000条url * 1(bit) /8(bytes)/1024(MB)/1024(GB) = 12MB

(采用多重哈希映射一个数据,存储该数据的状态 0 1)

100000000条 * 1bit = 12500000Byte = 12500kb = 12.5Mb

数据有可能出现冲突,但是概率已经很小了

布隆过滤是基于内存的,为了保证存储的状态不丢失,最好持久化

5.redis去重

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值