关于Sina.pipelines.SinaPipeline的设置
来源:10-4 scrapy-redis编写分布式爬虫代码
qq_拱手河山讨欢_0
2019-05-20
ITEM_PIPELINES = {
‘Sina.pipelines.SinaPipeline’: 300,
'scrapy_redis.pipelines.RedisPipeline': 400,
}
设置了这个参数,我们就不用自己写Pipeline,然后数据就会自动吧爬取的数据保存到redis数据库。
然后我有2个疑问?
1:redis是基于内存的,如果我们爬取数据量过大,对内存造成的压力就变大了,这种模式是否就不适用了?
2:我们怎么从redis上把我们需要的数据重新保存进我们的数据库,或者说我们该怎么写,写在什么地方。?
写回答
2回答
-
qq_拱手河山讨欢_0
提问者
2019-05-22
好的,学习Kafka需要懂java吗
012019-05-23 -
bobby
2019-05-22
redis是基于内存的,但是redis支持分布式,所以可以搭建多台服务器来加大内存,但是如果数据过大的话,对内存的要求就太高了。不过如果解析和入库的速度跟得上的话,可以快速消费这些数据的话就没有问题,不过不管如何一旦解析和入库的任务挂掉的话,还是会让redis快速的消耗掉内存,所以我不太建议将爬取的原始数据保存在redis中,如果要保存的,kafka会是更好的选择,不过kafka的入门门槛会高一点,不过学习成本是很值得的,kafka是我非常推荐的
如何要从redis中消费数据的话你看看这里的RedisPipeline的源码知道数据如何保存到redis中,你就知道如何取出数据了
00
相似问题