2025年6月4日 星期三 乙巳(蛇)年 三月初八 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Python

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

时间:05-19来源:作者:点击数:44

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操作

  • redis.hset('myh','name','aa') #添加元素
  • redis.hsetnx('myh','age',18) #添加元素,键名不存在添加,存在不改变
  • redis.hmset('myh',{'sex':'w','id':'001'}) #批量添加
  • redis.hincrby('myh','age',2) #对值进行增量操作
  • print(redis.hexists('myh','addr')) #判断键是否存在
  • redis.hdel('myh','id') #删除键
  • print(redis.hlen('myh')) #显示长度
  • print(redis.hkeys('myh')) #获取所有键
  • print(redis.hvals('myh')) #获取所有值
  • print(redis.hget('myh','age')) #获取单个元素值
  • print(redis.hmget('myh',['name','age'])) #获取多个元素值
  • print(redis.hgetall('myh')) #获取所有元素键值对
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门