記事のディレクトリ
7.scrapy、Redisの戦闘
ゼロからのRedis-Scrapyは、分散クローラを構築します
Scrapy-Redisの分散戦略:
Windowsの10、マックOS X、Ubuntuの16.04、CentOSの7.2は、どのコンピュータがマスターよだれの終了または終了として使用することができ、例えば:4台のコンピュータがあると仮定します。
Master端
(コアサーバー):Windowsの10使って、Redisのデータベースをセットアップするには、クロールの責任を負いません、URLの指紋は、重い刑、要求分布、およびデータを格納するための唯一の責任がありますSlaver端
(クローラ実行側):MacのOS X、Ubuntuの16.04、CentOSの7.2を使用するには、マスターに新しい要求を提出する操作中に、クローラーを実装するための責任があります
- よだれクロールデータは、新しいタスクがマスター・プロセスに提出される要求しながら、まずよだれの終わりには、データ取り込みのためのマスター端末からのジョブ(リクエスト、URL)を取ります。
- マスタデータベースRedisの一端のみ、データをクロールし、格納、処理要求キュークライミングに追加する、タスク割り当て重量及び未処理要求の原因です。
Scrapy-Redisのデフォルトは、この戦略を使用することで、我々は、タスクのスケジューリングや他の作業Scrapy-Redisのは、私たちは良い仕事を支援してきました、我々は唯一の行にredis_keyを指定、継承RedisSpiderする必要があるため、それは、非常に簡単です実現します。
缺点是,Scrapy-Redis调度的任务是Request对象,里面信息量比较大(不仅包含url,还有callback函数、headers等信息),可能导致的结果就是会降低爬虫速度、而且会占用Redis大量的存储空间,所以如果要保证效率,那么就需要一定硬件水平。
一、安装Redis
安装Redis:http://redis.io/download
安装完成后,拷贝一份Redis安装目录下的redis.conf到任意目录,建议保存到:/etc/redis/redis.conf
(Windows系统可以无需变动)
二、修改配置文件 redis.conf
打开你的redis.conf配置文件,示例:
- 非Windows系统:
sudo vi /etc/redis/redis.conf
- Windows系统:
C:\Intel\Redis\conf\redis.conf
-
Master端redis.conf里注释
bind 127.0.0.1
,Slave端才能远程连接到Master端的Redis数据库。 -
-
daemonize yno
表示Redis默认不作为守护进程运行,即在运行redis-server /etc/redis/redis.conf
时,将显示Redis启动提示画面;daemonize yes
则默认后台运行,不必重新启动新的终端窗口执行其他命令,看个人喜好和实际需要。
-
三、测试Slave端远程连接Master端
测试中,Master端Windows 10 的IP地址为:192.168.199.108
-
Master端按指定配置文件启动
redis-server
,示例:- 非Windows系统:
sudo redis-server /etc/redis/redis/conf
- Windows系统:
命令提示符(管理员)
模式下执行redis-server C:\Intel\Redis\conf\redis.conf
读取默认配置即可。
- 非Windows系统:
-
Master端启动本地
redis-cli
: -
slave端启动
redis-cli -h 192.168.199.108
,-h 参数表示连接到指定主机的redis数据库
注意:Slave端无需启动redis-server
,Master端启动即可。只要 Slave 端读取到了 Master 端的 Redis 数据库,则表示能够连接成功,可以实施分布式。
四、Redis数据库桌面管理工具
それはRedisのデスクトップマネージャーが推奨され、Windows版、Mac OS X、Linuxなどのプラットフォームをサポートしています。
ダウンロードします。https://redisdesktop.com/download