首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在编写爬虫程序时保留访问过的urls并维护作业队列

如何在编写爬虫程序时保留访问过的urls并维护作业队列
EN

Stack Overflow用户
提问于 2013-02-11 16:37:43
回答 1查看 399关注 0票数 3

我在写一个爬虫。我将访问的urls保存在redis设置中,并使用redis list维护作业队列。随着数据的增长,内存被耗尽,我的内存是4G。如何在没有redis的情况下维护这些内容?我不知道,如果我将它们存储在文件中,它们也需要在内存中。

如果我使用mysql来存储,我想它可能比redis慢得多。

我有5台4G内存的机器,如果任何人有一些材料来建立一个redis集群,它也会有很大帮助。我有一些材料可以设置一个要进行故障转移的集群,但我需要的是设置一个负载平衡集群。

thx

EN

回答 1

Stack Overflow用户

发布于 2013-03-03 03:51:33

如果您只是在执行向集合和列表添加/删除的基本操作,请查看twemproxy/nutcracker。有了它,你可以使用所有的节点。

关于您的使用模式本身,您是否正在删除作业和URL或使其过期?系统中有多少重复?例如,您是否重复搜索相同的URL?如果是这样,您可能只需要URL到其上次爬行时间的映射,而不是作业队列,而不是提取自上次运行以来新的URL或给定窗口之外的URL。

没有关于你的爬虫如何实际运行或与Redis交互的细节,这就是我所能提供的。如果内存持续增长,很可能意味着你没有清理数据库。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14808478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档