PYTHON NOTES · 14
使用 Python 操作 Redis 字符串、哈希、列表、集合与有序集合。
- Redis
- 数据存储
Python 操作 Redis
使用 Python 操作 Redis 字符串、哈希、列表、集合与有序集合。
1.基本使用步骤
# 调包
import redis
#创建连接
re = redis. Redis(decode_responses=True)
#操作数据
pass
#关闭连接
re.close()
2.数据操作
2.1字符串
#创建单个值
re.set
#创建多个值
re.mset
#查询单个值
re.get
#查询多个值
re.mget
#设置自动消除
re.setex
import redis
r = redis.Redis(decode_responses=True)
# 新建单个数据
r.set('name','张三')
# 读取单个数据
print(r.get('name'))
# 新建多个数据
r.mset({'name':'张三','age':18})
# 读取多个数据
print(r.mget('name', 'age'))
# 设置过期时间
# 十秒之后自动删除
r.setex('text',10,'李四')
r.close()
2.2 数值
#自增1
re.incr
#自增n
re.incrby
#自减1
re.decr
#自减n
re.decrby
# 自增1 自减1
# 自增n 自减n
import redis
r = redis.Redis(decode_responses=True)
r.set('count',1)
# 自增1
r.incr('count')
print(r.get('count'))
# 自减1
r.decr('count')
print(r.get('count'))
# 自增n
r.incrby('count',5)
print(r.get('count'))
# 自减n
r.decrby('count',4)
print(r.get('count'))
r.close()
2.3 哈希
##插入一组字典
re.hset
##插入多组字典
re.hmset
##查看一组字典值
re.hget
##查看多组字典值
re.hmget
##查看所有键
re.hkeys
##查看所有值
re.hvals
##查看所有键值对
re.hgetall
##删除键值对
re.hdel
# 哈希
import redis
r = redis.Redis(decode_responses=True)
# 给字典添加一个字典
r.hset('user','name','张三')
# 根据哈希的键查看字典值
print(r.hget('user','name'))
# 给字典添加多个字典
r.hmset('user',{'name':'张三','age':18})
# 根据哈希键查看字典多个值
print(r.hmget('user',['name','age']))
# 查哈希所有键值对
print(r.hgetall('user'))
# 查哈希所有的键
print(r.hkeys('user'))
# 查哈希所有的值
print(r.hvals('user'))
# 删除哈希键值对
r.hdel('user','name')
r.close()
2.4 列表
##从左侧插入值
re.lpush
##从右侧插入值
re.rpush
##从左侧删除一个值
re.lpop
##从右侧删除一个值
re.rpop
##查看列表
re.lrange
##查看列表长度
re.llen
# redis列表的操作
import redis
r = redis.Redis(decode_responses=True)
# 左侧添加
r.lpush('l1','a','b','c')
r.lpush('l1','d')
# 右侧添加
r.rpush('l1','1')
# 左侧删除(删除列表第1个元素)
r.lpop('l1')
# 右侧删除(删除列表最后一个元素)
r.rpop('l1')
# 查看列表(根据检索查看)
print(r.lrange('l1',0,-1))
# 查看列表长度
print(r.llen('l1'))
# 关闭
r.close()
2.5 集合
##添加数据
re.sadd
##删除指定数据
re.srem
##查看集合数据
re.smembers
##判断元素在不在集合里
re.sismember
##集合长度
re.scard
##交集
re.sinter
##并集
re.sunion
##差集
re,diff
import redis
r = redis.Redis(decode_responses=True)
# 给集合插入数据
r.sadd('s1','a','b','c')
# 删除指定数据
r.srem('s1','a')
# 查看集合数据
print(r.smembers('s1'))
# 判断元素在不在集合里
print(r.sismember('s1','b'))
# 获取集合长度
print(r.scard('s1'))
# 再创建一个集合
r.sadd('s2','a','b','d')
# 求交集
print(r.sinter(['s1','s2']))
# 求并集
print(r.sunion(['s1','s2']))
# 求差集a-b
print(r.sdiff(['s1','s2']))
r.close()
2.6 有序集合
##插入数据
re.zadd
##按成绩升序排序
re.zrange
##按成绩降序排序
re.zrevrange
##查排名
re.zrank
##加分
re.zincrby
##获取指定元素分数
re.zscore
##获取指定段的数据
re.zrangebyscore
import redis
r = redis.Redis(decode_responses=True)
# 新建一个有序集合
r.zadd('zset',{'宋':1,'张':2,'陈':3})
# 按照分数进行升序排列
print(r.zrange('zset',0,-1,withscores=True))
# 按照分数进行降序排列
print(r.zrevrange('zset',0,-1,withscores=True))
# 获取排名
print(r.zrevrank('zset','张'))
# 获取指定元素的分数
print(r.zscore('zset','张'))
# 给元素增加分数
r.zincrby('zset',1,'张')
print(r.zrange('zset',0,-1,withscores=True))
# 获取指定分数区间的元素
print(r.zrangebyscore('zset',0,4,withscores=True))