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)