python redis命令zadd_python redis 方法大全

copycode.gif

r.set("foo1", "123.0")

r.set("foo2", "221.0")

print(r.mget("foo1", "foo2"))

r.incrbyfloat("foo1", amount=2.0)

r.incrbyfloat("foo2", amount=3.0)

print(r.mget("foo1", "foo2"))

['123.0', '221.0']

['125', '224']

copycode.gif

11,decr(self, name, amount=1)

自减 name对应的值,当name不存在时,则创建name=amount,否则,则自减。

r.decr("foo5", amount=3) # 递减3

r.decr("foo6", amount=1) # 递减1

print(r.mget("foo5", "foo6"))

#['-3', '-1']

12,append(key, value)

在redis name对应的值后面追加内容

r.append('name','yang')

print(r.get('name'))

#zhenyuyang

4,hash redis基本命令

1.hset(name, key, value)

单个增加--修改(单个取出)--没有就新增,有的话就修改

copycode.gif

r.hset("hash1", "k1", "v1")

r.hset("hash1", "k2", "v2")

print(r.hkeys("hash1")) # 取hash中所有的key

#['k1', 'k2']

print(r.hget("hash1", "k1")) # 单个取hash的key对应的值

# v1

print(r.hmget("hash1", "k1", "k2")) # 多个取hash的key对应的值

# ['v1', 'v2']

r.hsetnx("hash1", "k3", "v3") # 只能新建

print(r.hget("hash1", "k3"))

# 这个命令只能新建,不会覆盖原来的值

copycode.gif

hget(name,key)

在name对应的hash中获取根据key获取value

hmget(name, keys, *args)

在name对应的hash中获取多个key的值

2,hmset(name, mapping)

批量插入数据,

参数:

name,redis的name

mapping,字典,如:{'k1':'v1', 'k2': 'v2'}

r.hmset("hash2", {"k2": "v2", "k3": "v3"})

print(r.hmget('hash2','k2','k3'))

#['v2', 'v3']

3,hgetall(name)

获取所有的键值对

r.hmset("hash2", {"k2": "v2", "k3": "v3"})

print(r.hgetall('hash2'))

#{'k2': 'v2', 'k3': 'v3'}

4,hlen(name)

获取键值对长度,说白了就是计算几个字典而已

r.hmset("hash2", {"k2": "v2", "k3": "v3"})

print(r.hgetall('hash2'))

#{'k2': 'v2', 'k3': 'v3'}

print(r.hlen('hash2'))

#2

5,hkeys(name)

获取所有的键,返回列表

r.hmset("hash2", {"k2": "v2", "k3": "v3"})

print(r.hkeys('hash2'))

#['k2', 'k3']

6,hvals(name)

获取所有的值,返回列表

r.hmset("hash2", {"k2": "v2", "k3": "v3"})

print(r.hvals('hash2'))

#['v2', 'v3']

7,hexists(name, key)

判断成员是否存在(类似字典的in)

r.hmset("hash2", {"k2": "v2", "k3": "v3"})

s = r.hexists('hash2','k2')

print(s)

#True

8,hdel(name,*keys)

删除键值对

#{'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}

r.hdel("hash1", "k1") # 删除一个键值对

print(r.hgetall("hash1"))

#{'k2': 'v222', 'k3': 'v3', 'k11': 'v1'}

9,hincrby(name, key, amount=1)

自增name对应的hash中的指定key的值,不存在则创建key=amount

copycode.gif

r.hset("hash1", "k3", 123)

r.hincrby("hash1", "k3", amount=-1)

print(r.hgetall("hash1"))

#{'k3': '122'}

r.hincrby("hash1", "k4", amount=1) # 不存在的话,value默认就是1

print(r.hgetall("hash1"))

#{'k3': '122', 'k4': '1'}

copycode.gif

10,hincrbyfloat(name, key, amount=1.0)

自增自减浮点数(将key对应的value--浮点数 自增1.0或者2.0,或者别的浮点数 负数就是自减)

copycode.gif

r.hset("hash1", "k5", "1.0")

r.hincrbyfloat("hash1", "k5", amount=-1.0) # 已经存在,递减-1.0

print(r.hgetall("hash1"))

#{'k5': '0'}

r.hincrbyfloat("hash1", "k6", amount=-1.0) # 不存在,value初始值是-1.0 每次递减1.0

print(r.hgetall("hash1"))

#{'k5': '0', 'k6': '-1'}

copycode.gif

11,hscan_iter(name, match=None, count=None)

利用yield封装hscan创建生成器,实现分批去redis中获取数据

参数:

match,匹配指定key,默认None 表示所有的key

count,每次分片最少获取个数,默认None表示采用Redis的默认分片个数

print(r.hgetall('hash1'))

#{'k5': '0', 'k6': '-1'}

for item in r.hscan_iter('hash1'):

print(item)

#('k5', '0')

#('k6', '-1') #f返回键值对元祖

5,list redis基本命令

1,lpush(name,values)

增加(类似于list的append,只是这里是从左边新增加)--没有就新建

r = redis.Redis(host='localhost', port=6379, db=15,decode_responses=True)

r.lpush("list1", 11, 22, 33)

print(r.lrange('list1', 0, -1))

#['33', '22', '11']

扩展:

r.rpush("list2", 11, 22, 33) # 表示从右向左操作

print(r.llen("list2"))      # 列表长度

print(r.lrange("list2", 0, 3)) # 切片取出值,范围是索引号0-3

2,lpushx(name,value)

往已经有的name的列表的左边添加元素,没有的话无法创建

r.lpushx("list1", 11) #该list1必须存在,否则无法插入

3,rpushx(name,value)

往已经有的name的列表的右边添加元素,没有的话无法创建

print(r.lrange('list1',0,-1))

#['1100', '11', '33', '22', '11', '33', '22', '11', '1100']

r.rpushx("list1", 1100) #增加

print(r.lrange('list1',0,-1))

#['1100', '11', '33', '22', '11', '33', '22', '11', '1100', '1100']

4,linsert(name, where, refvalue, value))

在name对应的列表的某一个值前或后插入一个新值

参数:

name,redis的name

where,BEFORE或AFTER

refvalue,标杆值,即:在它前后插入数据

value,要插入的数据

r.linsert("list1", "before", "11", "00") #意思是在11 之前插入00

5,r.lset(name, index, value)

对name对应的list中的某一个索引位置重新赋值

参数:

name,redis的name

index,list的索引位置

value,要设置的值

print(r.lrange('list1',0,-1))

#['1100', '00', '11', '33', '22', '11', '33', '22', '11', '1100', '1100']

r.lset('list1',1,'222') #对下标1的值改为222

print(r.lrange('list1',0,-1))

#['1100', '222', '11', '33', '22', '11', '33', '22', '11', '1100', '1100']

6,r.lrem(name, value, num)

在name对应的list中删除指定的值

参数:

name,redis的name

value,要删除的值

num,

num=0,删除列表中所有的指定值;

num=2,从前到后,删除2个; num=1,从前到后,删除左边第1个

num=-2,从后向前,删除2个

print(r.lrange("list1", 0, -1))

#['1100', '222', '11', '33', '22', '11', '33', '22', '11', '1100', '1100']

r.lrem('list1','1100',4) #左边出现的11,后面指定删除数量

print(r.lrange("list1", 0, -1))

#['1100', '222', '33', '22', '11', '33', '22', '11', '1100', '1100']

7,lpop(name)

在name对应的列表的左侧获取第一个元素并在列表中移除,返回值则是第一个元素

s = r.lpop('list1') #从左边删除第一个,并返回

s = r.rpop('list1') #从右边删除第一个,并返回

8,ltrim(name, start, end)

在name对应的列表中移除没有在start-end索引之间的值

参数:

name,redis的name

start,索引的起始位置

end,索引结束位置

print(r.lrange("list1", 0, -1))

#['33', '22', '11', '22', '33', '22']

r.ltrim('list1',0,2) #下标0-2也就是3个数,不在这个范围的删除

print(r.lrange("list1", 0, -1))

#['33', '22', '11']

9,lindex(name, index)

在name对应的列表中根据索引获取列表元素

print(r.lrange("list1", 0, -1))

#['33', '22', '11']

print(r.lindex('list1',0))

#33

10,rpoplpush(src, dst)

移动 元素从一个列表移动到另外一个列表

copycode.gif

# list1 ['33', '22']

# list2 ['11', '5', '4', '3', '2', '1']

r.rpoplpush('list1','list2') #可以看出从第一个列表最右边一个移到第二个列表的最左侧

print(r.lrange("list1", 0, -1))

print(r.lrange("list2", 0, -1))

#['33']

#['22', '11', '5', '4', '3', '2', '1']

copycode.gif

11,brpoplpush(src, dst, timeout=0)

移动 元素从一个列表移动到另外一个列表 可以设置超时

参数:

src,取出并要移除元素的列表对应的name

dst,要插入元素的列表对应的name

timeout,当src对应的列表中没有数据时,阻塞等待其有数据的超时时间(秒),0 表示永远阻塞

r.brpoplpush('list1','list2' , timeout=0)

print(r.lrange("list1", 0, -1))

print(r.lrange("list2", 0, -1))

#['33']

6,set redis基本命令

1,sadd(name,values)

name对应的集合中添加元素

r.sadd("set1", 33, 44, 55, 66) # 往集合中添加元素

print(r.scard("set1")) # 集合的长度是4

print(r.smembers("set1")) # 获取集合中所有的成员

#{'33', '55', '44', '66'}

2.获取元素个数 类似于 len

scard(name)

获取 name 对应的集合中元素个数

3.获取集合中所有的成员

smembers(name)

获取name对应的集合的所有成员

4, sscan('set1')

获取集合中所有的成员--元组形式

r.sadd("set1", 33, 44, 55, 66) # 往集合中添加元素

print(r.sscan('set1'))

#(0, ['33', '44', '55', '66'])

5,sscan_iter()

获取集合中所有的成员--迭代器的方式

copycode.gif

for i in r.sscan_iter('set1'):

print(i)

'''

33

44

55

66

'''

copycode.gif

6,sismember(name, value)

判断是否是集合的成员 类似in

print(r.smembers("set2"))

#{'55', '33', '66', '44'}

print(r.sismember('set2', '33'))

True

7,smove(src, dst, value)

将某个成员从一个集合中移动到另外一个集合

copycode.gif

print(r.smembers("set2"))

#{'55', '66', '33', '44'}

print(r.smembers("set3"))

#{'11', '22', '33'}

r.smove("set2", "set3", '44') #移动

print(r.smembers("set2"))

#{'66', '55', '33'}

print(r.smembers("set3"))

#{'44', '11', '22', '33'}

copycode.gif

8,spop(name)

从集合移除一个成员,并将其返回,说明一下,集合是无序的,所有是随机删除的

copycode.gif

print(r.smembers("set2"))

s = r.spop('set2')

print(s)

print(r.smembers("set2"))

'''

{'66', '55', '33'}

66

{'55', '33'}

'''

copycode.gif

’8,srem(name, values)

删除--指定值删除

copycode.gif

print(r.smembers("set2"))

r.srem('set2','55')

print(r.smembers("set2"))

'''

{'33', '55'}

{'33'}

'''

copycode.gif

7,redis基本命令 有序set

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值