redis为非关系型数据库,数据库内默认端口为6379,可以用db=来选择db,里面的数据有四种存储格式,字符串(string),列表(list),集合(set),有序集合(zset),散列(hash)
1连接reids
from redis import StrictRedis
redis = StrictRedis(host='localhost',port=6379,db=1)
2键操作
exit(name) 判断一个键是否存在
delete(name) 删除一个键
type(name) 判断一个键的类型
keys(pattern) 获取所有符合规则的键 pattern:匹配规则
randomkey() 获取随机的一个键
rename(src,dst) 重命名键
dbsize() 获取当前数据库中键的数目
expire(name,time) 设置键的过期时间 单位为秒
ttl(name) 获取键的过期时间,-1为永不过期
move(name,db) 将键移动到其他数据库中
flushdb() 删除当前选择的数据库中的所有键
flushall() 删除所有数据库中的所有键
3 字符串操作
set(name,value) 给数据库中键为name的string赋值为value
get(name) 返回数据库中键为name的string的value
getset(name,value)
给数据库中的键为name的string赋值为value并返回上次的value
mget(keys,*args) 返回多个键对应的value redis.mget(['a','b'])
setnx(name,value) 如果不存在这个键值对,则更新value,否则不变
setex(name,time,value) 设置键为name,值为value,有效期为time
setrange(name,offset,value)
设置键为name的键的字符串偏移offset后为value
mset(mapping) 批量赋值
msetnx(mapping) 键不存在时批量赋值
incr/decr(name,amount=1)
将键为name的值增/减值,默认为1,键不存在的时候创建并设置为amount
append(name,value) 在键为name的键后面添加一个value字符串
substr/getrange(name,start,end)
4列表操作
rpush/lpush(name,*values) 在键为name的列表末尾/头添加value
value可以传多个
llen(name) 返回键为name的列表的长度
lrange(name,start,end,) 返回键为name的列表start,end之间的元素
ltrim(name,start,end) 截取键为name的列表保留start,end之间的元素
lindex(name,index) 返回键为name的列表中index位置的元素
lset(name,index,value) 赋值键为name的列表中index位置的元素为value
lrem(name,count,value) 删除count个键为name的列表中的值为value的元素
lpop/rpop(name) 返回并删除键为name的列表中的首/尾个元素
blpop/brpop(keys,timeout=0)
返回并删除名称在keys中的list中的首/末尾个元素time为超时时间,如设置为0为一直等待
rpoplpush(src,dst)返回并删除名为src的列表的尾元素,并将该元素添加到名为dst的列表头部
5集合操作(集合中的元素不重复)
sadd(name,*values) 向键为name的集合中添加元素 values可以为多个
srem(name,*values) 从键为name的集合中删除元素 values可以为多个
spop(name) 随机返回并删除键为name的集合中的一个元素
smove(src,dst,value) 从scr中将value移动到dst中
scard(name) 返回键为name的集合中元素的个数
sismember(name,value)测试member是否是键为name的集合的元素
sinter(keys,*args) 返回所有给定键的集合的交集
sintrestore(dest,keys,*args) 求交集并将结果保存到dest的集合
sunion(keys,*args) 返回所有给定键的集合的并集
sunionstore(dest,keys,*args) 求并集并将结果保存到dest的集合
sdiff(keys,*args) 返回所有给定键的集合的差集
sdiffstore(dest,keys,*args) 求差集并将结果保存到dest的集合
smembers(name) 返回键为name的集合的所有元素
srandmember(name) 随机返回键为name的集合的一个元素
8有序集合(比集合多了一个分数字段,用于对集合中的元素进行排序)
zadd(name,*args,**kwargs)
向键为name的zset中添加元素member,score用于排序,如果该元素存在,更新分数
zrem(name,*values) 删除键为name的zset中的元素
zincrby(name,value,amount=1)
如果键为name的zset中已经存在元素value则增加amount,否则添加该元素,其score为amount
zrank(name,value) 返回键为name中的元素为value的score排名(从小到大)
zrevank(name,value) 返回键为name中的元素为value的score排名(从大到小)
zrevrange(name,start,end,withscores=False)
返回键名为name的zset中index从start到end的所有元素
zrangebyscore(name,min,max,start=None,num=None,withscore=False)
返回键名为name的zset中score在给定区间的 元素
zcount(name,min,max) 返回键名为name的zset中score在给定区间的 元素
zcard(name) 返回键为name的zset的元素的个数
zremrangebyrank(name,min,max) 删除键为name的zset中排名在给定区间的元素
zremrangebyscore(name,min,max)
删除键为name的zset中score在给定区间的元素
6散列操作
hset(name,key,value) 向键为name的散列中添加映射
hsetnx(name,key,value) 如果映射键名不存在,添加映射
hget(name,key) 返回键为name的散列中key对应的值
hmget(name,keys,*args) 返回键为name的散列中各键对应的值
hmset(name,mapping) 向键为name的散列中批量添加映射
hincrby(name,key,amount=1) 将键为name的散列中的key对应的值加1
hexists(name,key) 键为name的散列中是否存在键名为key的映射
hdel(name,*keys) 在键为name的散列中删除对应的映射
hlen(name) 获取散列中映射的个数
hkeys(name) 获取映射名
hvals(name) 获取所有映射值
hgetall(name) 获取所有键值对