Python redis 使用介绍 | 菜鸟教程
准备
取出方式
String命令
nx、xx
setnx(name,value)
setex(name, time, value)、psetex(name, time, value)
get(name)
mset
r.mset({"k1": "v1", "k2": "v2"})
mget
getset(name, value) 设置新值并获取原来的值
getrange(key, start, end) 获取子序列(根据字节获取,非字符)包括end
取索引号是0-2 前3位的字节 君 切片操作 (一个汉字3个字节 1个字母一个字节)
setrange(name, offset, value) 修改字符串内容
strlen(name) 返回name对应值的字节长度
(一个汉字3个字节)
incr(self, name, amount=1) 自增,默认 amount=1
自增 name 对应的值,当 name 不存在时,则创建 name=amount,否则,则自增
注:同 incrby
incrbyfloat(self, name, amount=1.0),默认amount=1.0
自增 name对应的值,当name不存在时,则创建name=amount,否则,则自增。
decr(self, name, amount=1) 自减,默认amount=1
自减 name 对应的值,当 name 不存在时,则创建 name=amount,否则,则自减
append(key, value) 在redis name对应的值后面追加内容
redis 基本命令 hash
hset(name, key, value) 单个增加--修改(单个取出)
--没有就新增,有的话就修改
hset(name,mapping=content) 批量增加 mapping- 字典
hmset已过时
hmget(name, keys, *args) 批量取出
hgetall(name) 取出所有的键值对
hkeys(name) 得到所有的keys(类似字典的取所有keys)
hgetall和hkeys对比
hmget 字符串 / 数组形式 对比
hlen(name) 得到所有键值对的格式 hash长度
hvals(name) 得到所有的value(类似字典的取所有value)
hexists(name, key) 判断成员是否存在(类似字典的in)
hdel(name,*keys) 删除 单个/多个 键值对
hincrby(name, key, amount=1) 自增自减整数
(将key对应的value--整数 自增1或者2,或者别的整数 负数就是自减)
hincrbyfloat(name, key, amount=1.0) 自增自减浮点数
(将key对应的value--浮点数 自增1.0或者2.0,或者别的浮点数 负数就是自减)
取值查看--分片读取
hscan(name, cursor=0, match=None, count=None)
hscan_iter(name, match=None, count=None) 分批获取数据
redis基本命令 list
lpush(name,values) 在name对应的list中添加元素,每个新的元素都添加到列表的最左边
rpush 增加(从右边增加)--没有就新建
lpushx(name,value) 往已经有的name的列表的左边添加元素,没有的话无法创建
在name对应的list中添加元素,只有name已经存在时 ,值添加到列表的最左边
rpushx 往已经有的name的列表的右边添加元素,没有的话无法创建
linsert(name, where, refvalue, value)) 新增(固定索引号位置插入元素)
r.lset(name, index, value) 修改(指定索引号 进行修改)
r.lrem(name, num, value) 删除(指定值进行删除)
lpop(name) 删除最左边元素并返回
rpop(name) 删除最右边元素
ltrim(name, start, end) 删除 索引之外 的值
lindex(name, index) 取值(根据索引号取值)
rpoplpush(src, dst) 移动 元素从一个列表移动到另外一个列表
从一个列表取出最右边的元素,同时将其添加至另一个列表的最左边
brpoplpush(src, dst, timeout=0) 移动 元素从一个列表移动到另外一个列表 可以设置超时
从一个列表的右侧移除一个元素并将其添加到另一个列表的左侧
blpop(keys, timeout) 一次移除多个列表
自定义增量迭代
redis基本命令 set
sadd(name,values) 新增
scard(name) 获取元素个数 类似于len
smembers(name) 获取集合中所有的成员
sscan(name, cursor=0, match=None, count=None) 获取集合中所有的成员--元组形式
sdiff(keys, *args) 差集
sdiffstore(dest, keys, *args) 差集--差集存在一个新的集合中
sinter(keys, *args) 交集
sinterstore(dest, keys, *args) 交集--交集存在一个新的集合中
sunion(keys, *args) 并集
sunionstore(dest,keys, *args) 并集存在一个新的集合
sismember(name, value) 判断是否是集合的成员 类似in
smove(src, dst, value) 将某个成员从一个集合中移动到另外一个集合
spop(name) 删除--随机 删除 并且返回被删除值
srem(name, values) 删除--指定值删除
redis基本命令 有序set
zadd 新增 字典 值为int类型
zcard(name) 获取有序集合元素个数 类似于len
r.zrange( name, start, end, desc=False, withscores=False, score_cast_func=float) 获取有序集合的所有元素
zrevrange(name, start, end, withscores=False, score_cast_func=float) 从大到小排序
(同zrange,集合是从大到小排序的)
zrangebyscore(name, min, max, start=None, num=None, withscores=False, score_cast_func=float) 按照分数范围获取name对应的有序集合的元素
zrevrangebyscore(name, max, min, start=None, num=None, withscores=False, score_cast_func=float)按照分数范围获取有序集合的元素并排序(默认从大到小排序)
zscan(name, cursor=0, match=None, count=None, score_cast_func=float) 获取所有元素--默认按照分数顺序排序
zscan_iter(name, match=None, count=None,score_cast_func=float) 获取所有元素--迭代器
zcount(name, min, max) 获取name对应的有序集合中分数 在 [min,max] 之间的个数
zincrby(name, amount, value) 自增
zrank(name, value) 获取值的索引号
zrem(name, values) 删除--指定值删除
zremrangebyrank(name, min, max) 删除--根据排行范围删除,按照索引号来删除
zscore(name, value) 获取值对应的分数
其他常用操作
delete(*names) 删除
exists(name) 检查名字是否存在
keys(pattern='') 模糊匹配
expire(name ,time) 设置超时时间
rename(src, dst) 重命名
randomkey() 随机获取name
type(name) 获取类型
查看所有元素 --汇总
查看所有元素--迭代器 --汇总
其它方法
管道