python爬虫12--文件存储之非关系型数据库存储Redis

Posted rong1111

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python爬虫12--文件存储之非关系型数据库存储Redis相关的知识,希望对你有一定的参考价值。

1.Redis连接

启动服务:

cd redis的安装路径------>redis-server.exe

cd redis的安装路径------>redis-cli

python中连接redis:

#第一种连接
from redis import StrictRedis
redis = StrictRedis(host=localhost,port=6379,db=0)
#第二种连接
from redis import StrictRedis,ConnectionPool
pool = ConnectionPool(host=localhost,port=6379,db=0)
redis = StrictRedis(connection_pool=pool)
redis.set(name,bob)
print(redis.get(name))

 

2.字符串操作

redis.set(name,bob)                 #给键赋值
redis.set(age,18)
print(redis.get(name))                #返回键的值
print(redis.getset(name,amy))       #给键重新赋值,并返回上一次的值
print(redis.mget([name,age]))       #返回多个键的值
redis.setnx(newname,jim)            #如果不存在则设置,set会覆盖之前的值
redis.setex(name,5,jim)             #设置键值对的有效期
redis.mset({name1:aa,name2:bb})   #批量设置
redis.msetnx({name3:dd,name4:rr})   #键值对均不存在是批量设置
redis.incr(age,2)                     #对值进行增量操作,不存在则为创建
redis.decr(age,5)                     #对值进行减量操作,不存在则为创建
redis.append(name,hello)            #对值进行字符串的增加
redis.substr(name,2,5)                #对值进行切片
print(redis.getrange(name,2,5))       #同上,对值进行切片

 

3.列表操作

redis.rpush(mylist,1,2,3)              #在列表右边追加值
redis.lpush(mylist,0)                  #在左边追加
print(redis.llen(mylist))              #返回列表长度
print(redis.ltrim(mylist,2,4))         #截取列表,保留截取的部分
print(redis.lrange(mylist,0,-1))       #列表切片
print(redis.lindex(mylist,1))          #返回索引位置元素
redis.lset(mylist,1,a)               #给列表索引位置元素赋值
redis.lrem(mylist,2,3)                 #删除列表中2个值为3的值
print(redis.lpop(mylist))              #返回并删除列表中首个元素
print(redis.rpop(mylist))              #返回并删除列表中最后一个元素
print(redis.blpop(mylist,timeout=0))   #返回并删除列表中首个元素,如果列表为空则一直阻塞等待
print(redis.brpop(mylist,timeout=0))   #返回并删除列表中最后一个元素,如果列表为空则一直阻塞等待
print(redis.rpoplpush(mylist,list1))   #返回并删除mylist列表的最后一个元素,并添加到list1的左边
print(redis.lrange(mylist,0,-1))
print(redis.lrange(list1,0,-1))

 

4.集合操作

redis.sadd(mys,aa,bb,cc,dd)      #向集合中添加元素
redis.srem(mys,dd)                     #删除元素
print(redis.spop(mys))                   #随机删除一个元素并返回值
redis.smove(mys,s2,bb)               #从集合mys中移除一个元素,并添加到集合s2中
print(redis.scard(mys))                  #返回集合个数
print(redis.sismember(mys,aa))         #判断aa是否集合mys的元素
print(redis.sinter(mys,s2))            #返回集合交集
redis.sinterstore(s3,[mys,s2])       #返回集合交集,并保存在集合s3中
print(redis.sunion(mys,s4))            #返回集合并集
redis.sunionstore(s5,[mys,s4])       #返回集合并集,并保存在s5中
print(redis.smembers(mys))               #查看集合所有元素
print(redis.srandmember(mys))   

 

5.有序集合操作

有序集合比集合多一个score字段,它对集合中的数据进行排序。

redis.zadd(z1,{aa:50,bb:30,cc:40})   #向集合中添加元组,redis-py 3.0之前的版本添加为:redis.zadd(‘key‘, value1, score1, value2, score2)
redis.zrem(z1,cc)                         #移除值
print(redis.zrevrange(z1,0,-1,withscores=False))  #切片并按score降序排序
print(redis.zcount(z1,30,40))                  #返回score在给定区间的个数
print(redis.zcard(z1))                       #返回个数

 

6.hash操作

以上是关于python爬虫12--文件存储之非关系型数据库存储Redis的主要内容,如果未能解决你的问题,请参考以下文章

Python3编写网络爬虫12-数据存储方式五-非关系型数据库存储

数据存储之非关系型数据库存储----MongoDB存储

python爬虫---mongodb基础

Python3爬虫 数据存储之关系型数据库MySQL

Python3网络爬虫实战-33数据存储:非关系型数据库存储:MongoDB

Python爬虫数据保存到MongoDB中