redis 部署分布式

准备工作

1.安装scrapy_redis包,打开cmd工具,执行命令pip install scrapy_redis

2.准备好一个没有BUG,没有报错的爬虫项目

3.准备好redis主服务器还有跟程序相关的mysql数据库

前提mysql数据库要打开允许远程连接,因为mysql安装后root用户默认只允许本地连接,详情请看此文章

部署过程

 

1.修改爬虫项目的settings文件

在下载的scrapy_redis包中,有一个scheduler.py文件,里面有一个Scheduler类,是用来调度url,还有一个dupefilter.py文件,里面有个类是RFPDupeFilter,是用来去重,所以要在settings任意位置文件中添加上它们

还有在scrapy_redis包中,有一个pipelines文件,里面的RedisPipeline类可以把爬虫的数据写入redis,更稳定安全,所以要在settings中启动pipelines的地方启动此pipeline

最后修改redis连接配置

2.修改spider爬虫文件

首先我们要引入一个scrapy_redis.spider文件中的一个RedisSpider类,然后把spider爬虫文件原来继承的scrapy.Spider类改为引入的RedisSpider这个类

接着把原来的start_urls这句代码注释掉,加入redis_key = '自定义key值',一般以爬虫名:urls命名

测试部署是否成功

直接运行我们的项目,

打开redis客户端在redis添加key为yunqi:start_urls的列表,值为地址

添加成功后,程序直接跑了起来

查看数据是否插入

分布式用到的代码应该是同一套代码
1) 先把项目配置为分布式
2) 把项目拷贝到多台服务器中
3) 把所有爬虫项目都跑起来
4) 在主redis-cli中lpush你的网址即可
5) 效果:所有爬虫都开始运行,并且数据还都不一样

转载于:https://my.oschina.net/u/3771014/blog/1805851

### Redis 分布式部署教程 #### 一、理解分布式架构需求 在设计任何分布式系统之前,明确业务场景下的具体需求至关重要。对于Redis而言,主要考虑的是高可用性和扩展性两个方面。前者确保即使部分节点失效也能继续提供服务;后者则指随着数据量增长能够方便地增加新机器加入集群。 #### 二、选择合适的拓扑结构 针对不同的应用场景可以选择不同类型的Redis集群模式: - **主从复制(Master-Slave Replication)** 主服务器负责处理所有的写操作并将更改同步给多个只读副本。这种方式可以提高读取性能并增强系统的容错能力[^1]。 - **哨兵机制(Sentinel System)** 当前者基础上增加了监控组件——哨兵进程,用于自动检测主节点状态并在其不可用时执行故障转移流程选举新的领导者[^2]。 - **Cluster模式** 这是一种更为复杂的多分片方案,在此模式下整个键空间被划分为固定数量的槽位(默认16384),各个实例仅管理其中一部分。它允许水平分割负载从而支持更大规模的数据集以及更高的并发访问请求[^3]。 #### 三、配置优化建议 为了构建稳定高效的Redis分布环境还需要注意以下几个要点: - 设置合理的持久化策略以平衡速度与安全性; - 调整网络超时参数避免不必要的连接断开重连现象发生; - 开启AOF日志记录功能保障意外情况下能快速恢复最新版本数据库文件; - 对于生产环境中使用的每台物理机最好单独分配IP地址而不是共享同一网卡资源以免造成冲突影响通信效率[^4]。 ```bash # 配置示例:调整最大内存限制及淘汰算法 maxmemory 2gb maxmemory-policy allkeys-lru ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值