redis-cli

基于scrapy-redis两种形式的分布式爬虫

不打扰是莪最后的温柔 提交于 2020-04-26 07:26:45
[TOC] 基于scrapy-redis两种形式的分布式爬虫 1.scrapy框架是否可以自己实现分布式?     - 不可以。原因有二。       其一:因为多台机器上部署的scrapy会各自拥有各自的调度器,这样就使得多台机器无法分配start_urls列表中的url。(多台机器无法共享同一个调度器)       其二:多台机器爬取到的数据无法通过同一个管道对数据进行统一的数据持久出存储。(多台机器无法共享同一个管道) 2.基于scrapy-redis组件的分布式爬虫 - scrapy-redis组件中为我们封装好了可以被多台机器共享的调度器和管道,我们可以直接使用并实现分布式数据爬取。 - 实现方式: 1.基于该组件的RedisSpider类 2.基于该组件的RedisCrawlSpider类 3.分布式实现流程:上述两种不同方式的分布式实现流程是统一的 3.1 下载scrapy-redis组件:pip install scrapy-redis 3.2 redis配置文件的配置: - 注释该行:bind 127.0.0.1,表示可以让其他ip访问redis - 将yes该为no:protected-mode no,表示可以让其他ip操作redis 3.3 修改爬虫文件中的相关代码: - 将爬虫类的父类修改成基于RedisSpider或者RedisCrawlSpider。注意

SpringBoot + Redis 执行lua脚本

本秂侑毒 提交于 2020-04-24 17:48:53
1、背景 有时候,我们需要一次性操作多个 Redis 命令,但是 这样的多个操作不具备原子性,而且 Redis 的事务也不够强大,不支持事务的回滚,还无法实现命令之间的逻辑关系计算。所以,一般在开发中,我们会利用 lua 脚本来实现 Redis 的事务。 2、lua 脚本 Redis 中使用 lua 脚本,我们需要注意的是,从 Redis 2.6.0后才支持 lua 脚本的执行。 使用 lua 脚本的好处: 原子操作:lua脚本是作为一个整体执行的,所以中间不会被其他命令插入。 减少网络开销:可以将多个请求通过脚本的形式一次发送,减少网络时延。 复用性:lua脚本可以常驻在redis内存中,所以在使用的时候,可以直接拿来复用,也减少了代码量。 3、Redis 中执行 lua 脚本 1、命令格式: EVAL script numkeys key [key ...] arg [arg ...] 说明: script是第一个参数,为Lua 5.1脚本(字符串)。 第二个参数numkeys指定后续参数有几个key。 key [key ...],被操作的key,可以多个,在lua脚本中通过KEYS[1], KEYS[2]获取 arg [arg ...],参数,可以多个,在lua脚本中通过ARGV[1], ARGV[2]获取。 2、如果直接使用 redis-cli命令: redis-cli -

redis的使用

左心房为你撑大大i 提交于 2020-04-24 10:05:25
redis是nosql数据库系统之一,是用c语言编写的key-value存储系统 Memcache只能将数据缓存到内存中,无法自动定期写入硬盘,这就表示,一断电或重启,内存清空,数据丢失。所以Memcache的应用场景适用于缓存无需持久化的数据。 而Redis不同的是它会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,实现数据的持久化 数据类型包括string(字符串)、list( 链表 )、set(集合)、zset(sorted set --有序集合)和hash(哈希类型) 优势:1、内存缓存 2、数据持久化 3、操作原子性 4、分布式支持 1.单机版redis由16个库,序号从0开始,15结束,可以使用select index来切换库 1 .启动redis集群 进入/usr/local/redis 目录启动 cd /usr/local/redis redis-server /usr/local/redis/redis.conf 2. 测试集群 客户端连接 redis-cli -c -h nn1.hadoop -p 6379 -c是集群的意思 cluster 3.关闭集群服务 关闭方式 在每台机器上执行下面的关闭命令 redis-cli -h nn1.hadoop -p 6379 shutdown redis-cli -h nn2.hadoop -p 6379

【转】redis 通信协议详解

我的梦境 提交于 2020-04-24 08:05:55
原文: https://blog.csdn.net/u014608280/article/details/84586042 ------------------------------------------------------ 一、简介 redis 客户端和服务端之间通信的协议是RESP(REdis Serialization Protocol)。传输层使用TCP。RESP的特点是: 实现容易 解析快 人类可读 二、数据类型 和协议格式 RESP实际上是一个支持以下数据类型的序列化协议:简单字符串(Simple Strings),错误(Errors),整数(Integers),批量字符串(Bulk String)和数组(Arrays)。 RESP在Redis中用作请求 - 响应协议的方式如下: 客户端将命令作为Bulk Strings的RESP数组发送到Redis服务器。 服务器根据命令实现回复一种RESP类型。 在RESP中,某些数据的类型取决于第一个字节: 对于简单字符串,回复的第一个字节是“+” 对于错误,回复的第一个字节是“ - ” 对于整数,回复的第一个字节是“:” 对于批量字符串,回复的第一个字节是“$” 对于数组,回复的第一个字节是“ *” 在RESP中,协议的不同部分始终以“\ r \ n”(CRLF)结束。 三、请求格式 *<number of

Linux下安装Redis4.0版本(简便方法)

假装没事ソ 提交于 2020-04-23 03:31:46
Redis介绍: Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。 Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化RDB和AOF,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 Redis支持数据的备份,即master-slave模式的数据备份。 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。 安装环境: 操作系统:CentOS Linux release 7.7.1908 (Core) IP地址:192.168.85.16 环境准备: yum install -y openssl gcc

Linux下安装Redis4.0版本(简便方法)

↘锁芯ラ 提交于 2020-04-23 03:27:02
Redis介绍: Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。 Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化RDB和AOF,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 Redis支持数据的备份,即master-slave模式的数据备份。 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。 安装环境: 操作系统:CentOS Linux release 7.7.1908 (Core) IP地址:192.168.85.16 环境准备: yum install -y openssl gcc

Redis系列(三):Redis集群的水平扩展与伸缩

大城市里の小女人 提交于 2020-04-22 03:09:15
一、Redis集群的水平扩展   Redis3.0版本以后,有了集群的功能,提供了比之前版本的哨兵模式更高的性能与可用性,但是集群的水平扩展却比较麻烦,接下来介绍下Redis高可用集群如何做水平扩展,在原集群的6个节点的基础上新增2个节点,由原来的3主3从变成4主4从,原先的3主3从部署详见 Redis系列(二):Redis高可用集群 ,如下图: 二、水平扩展具体操作    ① 将redis-5.0.2文件夹拷贝到新的主机192.168.160.154上去,(1)scp -r /usr/local/redis-5.0.2 root@192.168.160.154:/usr/local/ 进去到192.168.160.154主机 (2)cd /usr/local    ② 新启动2个redis实例,然后检查是否启动成功 (1)/usr/local/redis-5.0.2/bin/redis-server /usr/local/redis-5.0.2/redis-cluster/700*/redis.conf (2)ps -ef | grep redis 查看是否启动成功    ③ 查看redis集群的命令帮助 (1)cd /usr/local/redis-5.0.2 (2)bin/redis-cli --cluster help create:创建一个集群host1:port1 ..

Docker安装Redis并介绍漂亮的可视化客户端进行操作

拜拜、爱过 提交于 2020-04-22 01:19:11
1 简介 Redis 是使用 ANSI C 语言开发的基于 Key-Value 的高性能 NoSQL 数据库,在解决高并发、高可用等一系列问题中,它扮演着重要的角色。它的优势主要有: 速度快。 持久化。 原子性。 数据结构丰富。 多语言支持。 本文将简单介绍如何通过 Docker 安装 Redis ,并简单使用与操作。 2 Docker安装与使用 2.1 Docker安装 拉取 Redis 镜像,选择目前最新的稳定版本 5.0.8 : $ docker pull redis:5.0.8 建议配置成阿里云的镜像,速度会快很多。拉取成功后,可以通过下面命令检查: $ docker images |grep redis 启动 Redis : $ docker run -itd --name redis -p 6379:6379 redis:5.0.8 通过下面命令检查是否启动成功: $ docker ps|grep redis 进入容器里面: $ docker exec -it redis /bin/bash 在容器里面通过 Redis 命令行工具连接到数据库: $ redis-cli -h localhost -p 6379 当然,也可以不指定 hostname 和 port ,默认就是 127.0.0.1:6379 。 连接成功后就可以操作了: 通过下面命令,可以对所安装的

redis 5.0中使用 redis-cli 添加cluster node 并 reshard

♀尐吖头ヾ 提交于 2020-04-21 18:34:51
在redis-5中redis-trib.rb的功能被集成到了redis-cli中,大大简化了redis的集群部署,加快了进群部署的速度,也方便后期维护与扩容。 以下简要介绍一下redis-cli在集群中的操作: 环境:Ubuntu 18.04.2 LTS redis版本:redis-5.0.5 集群架构:3master+3slave(后期添加1master+1slave) 创建集群: 1、新建所需目录,创建配置文件,启动6个redis实例进程(配置参数尽量保持一致)。在这里原始集群端口号为6379-6384,监听在127.0.0.1上。添加节点监听为127.0.0.1:6385(master),127.0.0.1:6386(slave) 2、创建集群: 命令 :redis-cli --cluster create 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 --cluster-replicas 1 --cluster-replicas 表示有一个主有几个slave 3、扩容: (1)查看每个集群节点的node ID和身份 进入任意集群master节点:redis-cli -p 6379 查看节点ID:cluster nodes 注意

Redis 5.0 redis-cli --cluster help说明

天涯浪子 提交于 2020-04-21 08:22:56
背景: Redis Cluster 在5.0之后取消了ruby脚本 redis-trib.rb 的支持(手动命令行添加集群的方式不变),集合到redis-cli里,避免了再安装ruby的相关环境。直接使用redis-clit的参数--cluster 来取代。为方便自己后面查询就说明下如何使用该命令进行Cluster的创建和管理,关于Cluster的相关说明可以查看 官网 或则 Redis Cluster部署、管理和测试 。 环境: 系统版本:Ubuntu 14.04 Redis版本: 5.0 . 5 机器IP: 192.168 . 163.132 说明: redis-cli --cluster help redis-cli -- cluster help Cluster Manager Commands: create host1:port1 ... hostN:portN #创建集群 --cluster-replicas <arg> #从节点个数 check host:port #检查集群 --cluster-search-multiple- owners #检查是否有槽同时被分配给了多个节点 info host:port #查看集群状态 fix host:port #修复集群 --cluster-search-multiple- owners #修复槽的重复分配问题