1.爬虫时将爬取过的url存放到数据库中,利用数据库进行url的去重;每请求一个url之前,都现在数据库中查询一下。方法最简单,效率是最低的。
2.将已经请求过的url保存到set中,而set集合是在内存中创建的,访问效率比数据库的方式要快很多,只需要很简单的一个方法,就可以实现url的去重。
缺点:单纯的使用set集合的话,占用内存太大。
1个字符=2个字节
1GB=1024MB
1MB=1024KB
1KB=1024byte
1byte=8bit
100000000 * 50个字符 * 2byte/1024(KB)/1024(MB)/1024 = 9GB
3.先将url经过md5的加密,可以将不固定长度的url加密成固定长度的url,然后再存到set内存中;
100000000 * 16byte/1024(KB)/1024(MB)/1024 = 1GB
4.bloomfilter布隆去重:hashmap映射函数,它的去重原理不是直接将url直接存到内存中,而是给url映射一个值在内存中。
100000000 * 1byte/1024/1024/1024 = 0.09GB