Scrapy_redis
- Scrapy_redis在scrapy的基础上实现了更多,更强大的功能,具体体现在:request去重,爬虫持久化,实现分布式。
- 无论是多线程爬虫或是scrapy异步爬虫,都是在一台机器上。而分布式爬虫则是将堕胎主机组合起来,共同完成一个爬取任务,提高爬取的效率
- 分布式爬虫优点
- 可以充分利用多台机器的带宽
- 可以充分利用多台机器的ip地址
- 多台机器做,爬取效率更高
回顾scrapy的爬虫流程
scrapy_redis的爬虫流程
Redis服务器:管理爬虫服务器请求的url并去重;存储爬虫服务器爬下来的数据
Redis
redis是一种支持分布式的nosql(非关系型)数据库,数据是保存在内存中,同时redis可以定时把内存数据同步到磁盘中,即实现数据持久化。
redis可以用作数据库、缓存、和消息中间件。它支持多种类型的数据结果,如字符串,哈希,列表,集合,有序集合等
常用命令:
/etc/init.d/redis-server stop --->redis停止
/etc/init.d/redis-server start --->启动
/etc/init.d/redis-server restart --->重启
redis-cli -h <hostname> -p <port> -->远程连接redis数据库
redis中:
- select 1 -->切换到db1,默认在db0
- keys * -->查看所有的redis键
- type "键" -->查看键的数据类型
- flushdb -->清空当前db
- fulshall -->清空所有db
- 中文文档:http://www.redis.cn/commands.html
安装Redis
在Windows上安装Redis:
- 下载:redis官方是不支持windows操作系统的。但是微软的开源部门将redis移植到了windows上。因此下载地址不是在redis官网上。而是在github上:https://github.com/MicrosoftArchive/redis/releases。
- 安装:点击一顿下一步安装就可以了。
- 运行:进入到redis安装所在的路径然后执行redis-server.exe redis.windows.conf就可以运行了。
- 连接:redis和mysql以及mongo是一样的,都提供了一个客户端进行连接。输入命令redis-cli(前提是redis安装路径已经加入到环境变量中了)就可以连接到redis服务器了。
在Ubuntu上安装Redis:
- 安装:sudo apt-get install redis-server
- 卸载:sudo apt-get purge --auto-remove redis-server
- 启动:redis安装后,默认会自动启动,可以通过这个命令查看:ps aux|grep redis
- 如果想自己手动启动,可以通过以下命令进行启动:sudo service redis-server start。
- 停止:sudo service redis-server stop
- 客户端链接redis:redis-cli –h [ip地址] –p [端口号]