Scrapy_redis分布式原理

news2024/11/26 6:21:11

今天分享一下Scrapy_redis分布式原理:
1 scrapy_redis是什么

Scrapy_redis : Redis-based components for Scrapy.

Github地址:<https://github.com/rmax/scrapy-redis>

在这个地址中存在三个demo,后续我们对scrapy_redis的使用会通过这三个demo展开

2 为什么要学习scrapy_redis

Scrapy_redis在scrapy的基础上实现了更多,更强大的功能,具体体现在:

-   请求对象的持久化
-   去重的持久化
-   和实现分布式

 3 scrapy_redis的原理分析

3.1 回顾scrapy的流程

那么,在这个基础上,如果需要实现分布式,即多台服务器同时完成一个爬虫,需要怎么做呢?

3.2 scrapy_redis的流程

-   在scrapy_redis中,所有的带抓取的对象和去重的指纹都存在所有的服务器公用的redis中
-   所有的服务器公用一个redis中的request对象
-   所有的request对象存入redis前,都会在同一个redis中进行判断,之前是否已经存入过
-   在默认情况下所有的数据会保存在redis中

具体流程如下:

 

4 对于redis的复习

很多人对redis的命令遗忘的差不多了, 但是在scrapy_redis中需要使用redis的操作命令,所有需要回顾下redis的命令操作

4.1 redis是什么

redis是一个开源的内存型数据库,支持多种数据类型和结构,比如列表、集合、有序集合等,同时可以使用redis-manger-desktop等客户端软件查看redis中的数据,关于redis-manger-desktop的使用可以参考扩展阅读

4.2 redis服务端和客户端的启动

-   `/etc/init.d/redis-server start` 启动服务端
-   `redis-cli -h <hostname> -p <端口号>` 客户端启动

4.3 redis中的常见命令

1.  `select 1` 切换db
1.  `keys *` 查看所有的键
1.  `tyep 键` 查看键的类型
1.  `flushdb` 清空db
1.  `flushall` 清空数据库

4.4 redis命令的复习

redis的命令很多,这里我们简单提及一下后续会使用的命令:

列表:

LPUSH mylist "world"   >向mylist从左边添加一个值

LRANGE mylist 0 -1     >返回mylist中所有的值

LLEN mylis             >返回mylist的长度

set:

redis> SADD myset "Hello"   >往set中添加数据

SMEMBERS mysetredis>        >获取myset中所有的元素

redis>SCARD myset           >scrad 获取数量

zset:

redis> ZADD myzset 1 "one"

(integer) 1

redis> ZADD myzset 2 "two" 3 "three"

(integer) 2

redis> ZRANGE myzset 0 -1 WITHSCORES

1) "one"

10

3"two"

4)121

5"three"

6)131

redis> ZCARD myzset

zadd 向一个zset中添加一个值和分数,如果存在值就更新分数,分数可以相同zrange 遍历myzesetzcard 返回zset中元素的数量
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/92569.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大学生简单环保环境静态HTML网页设计作品 DIV布局环境介绍网页模板代码 DW学生环境网站制作成品下载 HTML5期末大作业

&#x1f380; 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

2022_TIP_DSNet

Boosting RGB-D Saliency Detection by Leveraging Unlabeled RGB Images 通过利用未标记的RGB图像来增强rgb-d显着性检测 1. 动机 1) 用于监督学习的像素级注释既昂贵又耗时。 2) 与RGB图像相比&#xff0c;成对的rgb-d图像更难以收集。 2. 解决方法 提出 Dual-Semi RG…

[附源码]Python计算机毕业设计Django景区直通车服务系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

智能人机交互

前言 随着移动机器人越来越多地走向实 际应用&#xff0c;需要提高机器人与人类之 间的协同水平&#xff0c;实现机器人与人类的共融。 一、人机交互的三个级别 二、火星车的遥操作控制 火星车的遥操作控制&#xff08;超大时延&#xff09;&#xff1a;地面团队将命令序列发至…

Linux | 网络概念理解 | 对网络的初识

文章目录重新看待计算机体系结构软件分层的思想网络中的分层协议的理解局域网的理解MAC地址 && IP地址报头的作用端口号&#xff08;port&#xff09;重新看待计算机体系结构 计算机由硬件组成&#xff0c;而不同硬件之间要怎么通信&#xff0c;或者说要怎么进行数据的…

STM32F4的串口烧录问题

前言&#xff1a;以前总是画F1的板子&#xff0c;第一次接触F4的芯片&#xff0c;画板子时串口接在了PB6、PB7上&#xff0c;导致烧录程序、检测芯片失败的情况。其原因是由于F1的USART1对应(PA9\PA10)&#xff0c;而F4的USART1则对应了(PA9\PA10)和(PB6\PB7)。两个对应搞得不知…

linux安装jdk教程(手动安装/yum安装) 保姆级教程

yum安装jdk方式&#xff1a; 1、查询要安装jdk的版本 命令&#xff1a;yum -y list java* 2、选择你需要安装的版本号 命令&#xff1a;yum install -y 你选择的版本号 ​ 3、 查询jdk版本 命令&#xff1a;java -version (有版本证明安装成功了......) 手动安装方式&#…

Kibana:运用 transform 来实现服务质量目标(SLO)的可视化

Kibana 是一个有用的工具&#xff0c;用于监控应用程序和服务以确保它们在指定的服务级别目标内运行。 服务质量指标 (SLI) 是服务的可衡量方面&#xff0c;例如错误代码和延迟。 服务质量目标 (SLO) 定义应用程序或服务预期如何按照 SLI 衡量的方式执行&#xff0c;并在某种程…

《集体智慧编程》笔记(3 / 12):发现群组

Discovering Groups 文章目录监督学习和无监督学习监督学习无监督学习单词向量对博客用户进行分类对订阅源中的单词进行计数分级聚类绘制树状图列聚类K-均值聚类针对偏好的聚类获取数据和准备数据BeautifulSoup收集来自Zebo的结果定义距离度量标准对结果进行聚类以二维形式展现…

二、导论——可解释性机器学习(DataWhale组队学习)

目录引言ZFNet的网络结构可视化反卷积反池化反激活反卷积训练细节特征可视化特征演化特征不变性局部遮挡测试敏感性分析相关性分析消融实验宽度影响深度影响迁移学习能力有效性分析总结引言 纽约大学ZFNet&#xff0c;2013年ImageNet图像分类竞赛冠军模型。对AlexNet进行改进的…

Redis框架(十三):大众点评项目 达人探店 博客功能实现

大众点评项目 达人探店 博客功能实现需求&#xff1a;达人探店 博客功能实现业务实现总结SpringCloud章节复习已经过去&#xff0c;新的章节Redis开始了&#xff0c;这个章节中将会回顾Redis实战项目 大众点评 主要依照以下几个原则 基础实战的Demo和Coding上传到我的代码仓库…

送书福利!全自主IDE的《运动控制系统应用与实践》

功能齐全、稳定性强、简单易用的实时工控软件平台是成就工业控制的重要工具。运动控制作为工业控制领域的核心技术之一&#xff0c;在3C电子、锂电新能源、装配、激光加工、点胶、贴附、工业机器人等工业应用场景中发挥着巨大作用。 正运动技术自主自研的ZDevelop是国内少有的…

腾讯工作3个月,做软件测试的一些感悟

普通二本计算机专业毕业&#xff0c;从毕业后&#xff0c;第一份接触测试的工作是在一家通讯小公司&#xff0c;大部分接触的工作是以功能测试为主&#xff0c;一直都是几千块钱工资&#xff0c;还一度被派出差&#xff0c;以及兼职各种产品、运维、运营的活&#xff0c;感觉自…

基于FPGA的spi通信接口VHDL设计

目录 1.算法概述 2.仿真效果 3.MATLAB仿真源码 1.算法概述 SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布

Coretex_M0工程创建

本文档介绍如何创建一份基于成熟库函数的新工程&#xff01; 类似于如下的工程: 如上的MCU表示的是NXP公司封装好的关于芯片的库函数&#xff0c;BSP表示的是板级支持开发包&#xff0c;是和具体开发板外设的设备有关。 那么如果我们需要我们的工程包含这样的库函数&#xff0c…

小程序在线生成平台怎么使用?

其实目前小程序在线生成平台是比较主流的&#xff0c;很多小伙伴看到一些制作小程序教学&#xff0c;都会有“这个软件怎么下载&#xff1f;”、“怎么做&#xff1f;”之类的问题。其实小程序在线生成平台一般都不需要下载的&#xff0c;它主要是在网页中打开工具进行在线制作…

Jenkins在windows平台下,让Powershell、批处理可以拉起进程并保持

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:无尽的折腾后,终于又回到了起点,工控,我来了 !前言 没有人喜欢windows平台下的自动化构建,一如多年前没人喜欢linux的桌面一样。 最近在考虑wi…

Back Propagation 反向传播

文章目录3、Back Propagation 反向传播3.1 引出算法3.2 非线性函数3.3 算法步骤3.3.1 例子3.3.2 作业13.3.3 作业23.4 Tensor in PyTorch3.5 PyTorch实现线性模型3.6 作业33、Back Propagation 反向传播 B站视频教程传送门&#xff1a;PyTorch深度学习实践 - 反向传播 3.1 引…

联通数科一面+二面+面谈 经验分享 base济南

联通数科一面二面面谈 10.8 投递简历&#xff08;大数据开发岗位 base西安 有成都岗&#xff1f; 我怎么没看到&#xff09; 10.10-12 笔试 11.05 一面 有五六个面试官 问了问题的有两个 介绍了下项目&#xff0c;问了些每个组件的基础知识&#xff0c;都是大数据的基本八股…

深聊性能测试,从入门到放弃之: Windows系统性能监控(三)任务管理器介绍及使用。

任务管理器1、引言2、任务管理器2.1 打开方式2.2 介绍2.2.1 定义2.2.2 进程2.2.3 性能2.2.4 应用历史记录2.2.5 启动2.2.6 用户2.2.7 详细信息2.2.8 服务3、总结1、引言 关于Windows系统性能监控的前两篇 《Windows系统性能监控(一) 性能监视器介绍及使用》《Windows系统性能…