请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于Sina.pipelines.SinaPipeline的设置

ITEM_PIPELINES = {

‘Sina.pipelines.SinaPipeline’: 300,

'scrapy_redis.pipelines.RedisPipeline': 400,

}
设置了这个参数,我们就不用自己写Pipeline,然后数据就会自动吧爬取的数据保存到redis数据库。
然后我有2个疑问?
1:redis是基于内存的,如果我们爬取数据量过大,对内存造成的压力就变大了,这种模式是否就不适用了?
2:我们怎么从redis上把我们需要的数据重新保存进我们的数据库,或者说我们该怎么写,写在什么地方。?

正在回答 回答被采纳积分+3

2回答

提问者 qq_拱手河山讨欢_0 2019-05-22 10:52:50

好的,学习Kafka需要懂java吗

0 回复 有任何疑惑可以回复我~
  • bobby #1
    不需要 kafka只一个服务,python也有接口。,直接使用python和kafka交互就行了
    回复 有任何疑惑可以回复我~ 2019-05-23 13:53:22
bobby 2019-05-22 10:37:17
  1. redis是基于内存的,但是redis支持分布式,所以可以搭建多台服务器来加大内存,但是如果数据过大的话,对内存的要求就太高了。不过如果解析和入库的速度跟得上的话,可以快速消费这些数据的话就没有问题,不过不管如何一旦解析和入库的任务挂掉的话,还是会让redis快速的消耗掉内存,所以我不太建议将爬取的原始数据保存在redis中,如果要保存的,kafka会是更好的选择,不过kafka的入门门槛会高一点,不过学习成本是很值得的,kafka是我非常推荐的

  2. 如何要从redis中消费数据的话你看看这里的RedisPipeline的源码知道数据如何保存到redis中,你就知道如何取出数据了

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号