首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将红色数据存储到MySQL以便永久存储的最佳策略是什么?

将红色数据存储到MySQL以便永久存储的最佳策略是什么?
EN

Stack Overflow用户
提问于 2022-03-07 08:01:58
回答 2查看 81关注 0票数 0

我正在运行几个爬虫,每天生成数百万个数据集。瓶颈是蜘蛛和远程数据库之间的延迟。如果爬行器服务器的位置太大,延迟将使爬虫速度降低到无法完成一天所需的数据集的程度。

为了寻找解决方案,我遇到了redis,它的想法是安装redis,蜘蛛服务器,它将临时存储以低延迟收集的数据,然后redis将这些数据以某种方式拉到mysql。

到目前为止,设置是这样的:

  • 大约有40个蜘蛛运行在多个实例上,通过TCP/IP在专用机器上为一个中央MySQL8远程服务器提供服务,
  • 每个蜘蛛都编写不同的数据集,一种蜘蛛获取搜索结果的位置和价格,其中有100个结果,在一个页面上插入约200-300个。延迟在下一个请求/页之间约为2-10秒。

后者是问题所在,因为爬行器生成页面中的每个位置,并在事务中创建远程插入,甚至可能是连接(目前还不确定)。

这目前只适用于蜘蛛和远程MySQL服务器是接近的(相同的数据中心),其ping次数为0.0xms,不能处理50 ms的ping次数,因为蜘蛛写得不够快。

redis或者DataMQ是解决问题的有效方法,还是有其他推荐的方法来解决这个问题?

EN

回答 2

Stack Overflow用户

发布于 2022-03-08 06:19:36

你的意思是你已经在每个蜘蛛上安装了一个Redis服务器吗?

其实这对你来说不是个好办法。但是,如果您已经这样做了,并且仍然希望使用MySQL来持久化您的数据,那么在每个服务器上使用cron作业将是一种选择。

您可以在每个蜘蛛服务器上创建一个cron作业(根据您的数据集和需要,您可以选择每天或每小时同步作业)。并编写一个数据传输脚本来扫描Redis并将其传输到MySQL表。

票数 0
EN

Stack Overflow用户

发布于 2022-03-07 08:18:29

我建议使用MongoDB而不是MySQL来存储数据

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

https://stackoverflow.com/questions/71377972

复制
相关文章

相似问题

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