本文目录
  1. 1.基本使用步骤
  2. 2.数据操作
  3. 2.1字符串
  4. 2.2 数值
  5. 2.3 哈希
  6. 2.4 列表
  7. 2.5 集合
  8. 2.6 有序集合

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))