redis基本命令list

1.lpush(name,value)

在name的头部添加元素,没有则创建。

import redis,time
r = redis.Redis(host='localhost',port=6379,decode_responses=True)
r.lpush('list',11,12,13)
print(r.lrange('list',0,-1))  # ['13', '12', '11']

2.rpush(name,value)

在name的尾部添加元素。

import redis,time

r = redis.Redis(host='localhost',port=6379,decode_responses=True)
r.rpush('list',11,12,13)
print(r.lrange('list',0,-1))  # ['11', '12', '13']

3.lpushx(name,value)

向已经存在的name头部添加元素。

import redis,time

r = redis.Redis(host='localhost',port=6379,decode_responses=True)
r.lpushx('list','q')  #只能添加一个元素,不能添加多个
print(r.lrange('list',0,-1))  # ['q', '13', '12', '11']

4. rpushx(name,value)

向已经存在的name尾部添加元素。

import redis,time

r = redis.Redis(host='localhost',port=6379,decode_responses=True)
r.rpushx('list','q')  #只能添加一个元素,不能添加多个
print(r.lrange('list',0,-1))  # ['q', '13', '12', '11', '11', '12', '13', 'q']

5.linsert(name,where,ref,value)

在key对应的list的特定位置之前或者之后添加元素。

参数:

  • where:before 或者after
  • ref:标杆值(索引),在他的前面或者后面插入。
import redis,time

r = redis.Redis(host='localhost',port=6379,decode_responses=True)
r.linsert('list1','after','3','00')  
print(r.lrange('list1',0,-1))

6.lset(name,index,value)

将特定位置的值修改为value

import redis,time

r = redis.Redis(host='localhost',port=6379,decode_responses=True)
r.lset('list',3,'test') 
print(r.lrange('list',0,-1))  # ['q', '13', '12', 'test', '11', '12', '13', 'q']

7.lrem(name,index,num)

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

  • num=0,删除列表中的所有值。
  • num=2,从前到后,删除2个。
  • num=-2,从后到前,删除2个。
import redis,time

r = redis.Redis(host='localhost',port=6379,decode_responses=True)
print(r.lrange('list',0,-1))  # ['q', '13', '12', 'test', '11', '12', '13', 'q']
r.lrem('list','11',0)
r.lrem('list','12',2)
r.lrem('list','13',-2)
r.lrem('list','q',1)
print(r.lrange('list',0,-1))  # ['test', 'q']

8.lpop(name)和rpop(name)

lpop表示删除name中头部的第一个元素并且返回该元素。

rpop表示删除name中尾部的第一个元素并且返回该元素。

import redis,time

r = redis.Redis(host='localhost',port=6379,decode_responses=True)
r.lpop('list')
r.rpop('list')
print(r.lrange('list',0,-1))  # []

9.ltrim(name,start,end)

删除索引没有在start和end之间的值。

import redis,time

r = redis.Redis(host='localhost',port=6379,decode_responses=True)
r.lpush('list',11,22,33)
r.ltrim('list1',0,4)
print(r.lrange('list1',0,-1))  # []

10.index(name,index)

根据下标index获取元素

import redis,time

r = redis.Redis(host='localhost',port=6379,decode_responses=True)
r.lpush('list',11,22,33)
print(r.lindex('list',2))  # 11

11.rpoplpush(src,dst)

移动一个列表的元素到另一个列表,从列表的尾部取出元素,添加到另一个列表的头部。

参数:

src:待取数据的列表

dst:待添加数据的列表

import redis,time

r = redis.Redis(host='localhost',port=6379,decode_responses=True)
r.lpush('list',11,22,33)
r.rpoplpush('list','list0') # list0可以原先不存在
print(r.lrange('list0',0,-1)) #['11']

12.brpoplpush(src,dst,timeout)

移动一个列表的元素到另一个列表,从列表的尾部取出元素,添加到另一个列表的头部。

参数:

src:待取数据的列表

dst:待添加数据的列表

timeout:超时时间,timeout=0时,表示永久阻塞

import redis,time

r = redis.Redis(host='localhost',port=6379,decode_responses=True)
r.lpush('list',11,22,33)
r.rpoplpush('list','list0') # list0可以原先不存在
print(r.lrange('list0',0,-1)) #['11']

13.blpop(keys,timeout)

将多个列表排列,按照从左到右去pop对应列表的元素。

参数中的keys表示多个列表的集合

import redis,time

r = redis.Redis(host='localhost',port=6379,decode_responses=True)
r.lpush('list',11,22,33)
r.lpush('list0',11,22,33)

while True:
    r.blpop(['list0','list'],timeout=2)
    print(r.lrange('list0',0,-1),r.lrange('list',0,-1))

14.自定义增量迭代

import redis,time

r = redis.Redis(host='localhost',port=6379,decode_responses=True)
r.lpush('list',11,22,33)

def liter(list_name):
    count = r.llen(list_name)
    for index in range(count):
        yield r.lindex(list_name,index)

for item in liter('list'):
    print(item)

猜你喜欢

转载自www.cnblogs.com/wl443587/p/10274208.html