Python3 之 Redis 安装

        Redis是一个基于内存的数据库,数据库可以作为一个媒介来实现人与程序或者程序与程序的沟通。比如,如果程序的一些关键变量的值是实时从数据库里面读出来的,那么如果控制者想改变程序的一些行为,只需要修改这几个关键变量的值就可以了。例如爬虫的目标页面的网址是从数据库里面实时读出来的,那么如果想临时增加几个新的网址,只需要把网址添加到数据库中即可,不需要重启爬虫。

一、环境搭建

1.在Mac OS下安装Redis

        使用Homebrew安装:

brew update
brew install redis
#运行Redis
redis-server /usr/local/etc/redis.conf

2.在Ubuntu下安装Redis

        在Ubuntu下安装Redis,需要下载Redis的源代码并进行编译。

wget http://download.redis.io/releases/redis-3.2.1.tar.gz
tar xzf redis-3.2.1.tar.gz
cd redis-3.2.1
make
#运行解压以后的文件夹下面的src文件夹中的redis-server文件启动redis服务
src/redis-server

3.在Windows下安装Redis

        Redis没有Windows的官方安装包,但是有第三方的安装包。从https://github.com/ServiceStack/redis-windows/raw/master/downloads/redis-latest.zip下载第三方Redis并解压后,使用CMD进入解压以后的文件夹并运行命令redis-server.exe redis.windows.conf启动Redis。

二、Redis交互环境的使用

        与MongoDB不一样,要使用Redis的各种简单功能,只需要使用Redis自带的交互环境即可,没有必要安装一个第三方的客户端。在安装了Redis以后,先启动Redis-Server,接着启动Redis的交互环境。对于使用Homebrew安装Redis的Mac OS,进入Redis交互环境非常简单,打开终端输入redis-cli,并按Enter键即可。对于Ubuntu和Windows,需要先在终端或者CMD下进入Redis的安装文件夹,然后在里面运行命令redis-cli来启动Redis的交互环境。比如,在交互环境中,使用keys *可以查看当前有多少的“Key” 。

        在Redis中有多种不同的数据类型,不同的数据类型有不同的操作方法,在爬虫开发的过程中主要会用到Redis的列表与集合。Redis的列表是一个可读可写的双向队列,可以把数据从左侧或者右侧插入到列表中,也可以从左侧或者右侧读出数据,还可以查看列表的长度。从左侧写数据到列表中,使用的关键字为“lpush”,这里的“l”为英文“left”(左)的首字母。使用方法为:

(1)列表

lpush key value1 value2 value 3…

        例如,下面的写法都是正确的:

lpush yuanxiaohouzi6 "url"
lpush test "hello" "world"

        如果想从列表左侧读出数据,使用的关键字为“lpop”,这里的“l”也是“left”的首字母。例如:

lpop yuanxiaohouzi6

        lpop一次只会读最左侧的一个数据,并且在返回数据的时候会把这个数据从列表中删除。这一点和Python列表的pop是一样的。

        列表的右侧操作和左侧操作完全一致。只不过需要使用关键字“rpush”和“rpop”。这里的“r”对应英文“right”(右)的首字母。

rpush test "yuanxiaohouzi"
rpush test "world" "hello"
rpop yuanxiaohouzi

        如果想查看一个列表的长度,可使用关键字为“llen”。这个关键字的第1个“l”对应的是英文“list”(列表)的首字母。

        如果不删除列表中的数据,又要把数据读出来,就需要使用关键字“lrange”,这里的“l”对应的是英文“list”的首字母。”lrange”的使用格式为:

lrange key start end

        其中,start为起始位置,end为结束位置。需要特别注意的是,在Python中,切片是左闭右开区间,例如,test[0:3]表示读列表的第0、1、2个共3个值。但是lrange的参数是一个闭区间,包括开始,也包括结束,因此lrange中会包含下标为0、1、2、3的4个值。

(2)集合

        Redis的集合与Python的集合一样,没有顺序,值不重复。往集合中添加数据,使用的关键字为“sadd”。这里的“s”对应的是英文单词“set”(集合)。使用格式为:

sadd key value1 value2 value3

        例如:

sadd yuanxiaohouzi "https://baidu.com"
sadd yuanxiaohouzi 1 2 3 3 3 3

        命令执行完成以后,返回的数字表示有多少个数据被插入到集合中。例如第2句插入了1、2、3、3、3、3,由于3出现了4次,所以实际上真正进到集合里面的数据只有1、2、3这3个数。由于集合里面的数据是没有顺序的,所以也就不存在“左”和“右”。因此插入数据到集合只有“sadd”这一个关键字。从集合中读数据,使用的关键字为spop,使用方法为:

spop key count

        其中,count表示需要读多少个值出来。如果省略count,表示读一个值。例如:

spop yuanxiaohouzi
spop yuanxiaohouzi 2

        spop也会在读了数据以后将数据从集合中删除。在爬虫的开发过程中,Redis的集合一般用于去重的操作,因此很少会把数据从里面读出来。要判断一个网址是否已经被爬虫爬过,只需要把这个网址sadd到集合中,如果返回1,表示这个网址还没有被爬过,如果返回0,表示这个网址已经被爬过了。

        如果需要查看集合中有多少个值,可以使用关键字scard。它的使用格式为:

scard key

        例如:

scard yuanxiaohouzi
scard url

--------------------------------------

版权声明:本文为【PythonJsGo】博主的文章,同步在【猿小猴子】WeChat平台,转载请附上原文出处链接及本声明。

--------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值