首页 > 代码库 > Redis列表操作

Redis列表操作

列表类似于双向链表结构,可从序列两端推入或者弹出元素。

(列表常用命令)

RPUSH : RPUSH key-name value  [value1 value2,...] ------------将一个或多个值推入列表右端

LPUSH : LPUSH key-name value  [value1 value2,...] ------------将一个或多个值推入列表左端

RPOP  : RPOP key-name----------移除并返回列表最右端元素

LPOP  :LPOP key-name----------移除并返回列表最左端元素

LINDEX : LINDEX key-name  offset --------------返回列表中偏移量为offset的元素

LRANGE : LRANGE key-name start end -------------返回列表中偏移量从start到end范围内的元素

LTRIM : LTRIM key-name start end ----------------对列表进行修剪,只保留偏移量从start到end范围内的元素

>>> import redis
>>> conn = redis.Redis(host=192.168.146.129,port=6379,db=0)
>>> conn.rpush(list-key,value1,value2,value3)
3L
>>> conn.lpush(list-key,value3,value4)
5L
>>> conn.lrange(list-key,0,-1)
[value4, value3, value1, value2, value3]
>>> conn.lpop(list-key)
value4
>>> conn.rpop(list-key)
value3
>>> conn.lrange(list-key,0,-1)
[value3, value1, value2]
>>> conn.ltrim(list-key,1,-1)
True
>>> conn.lrange(list-key,0,-1)
[value1, value2]

 

(阻塞式列表弹出命令以及在列表之间移动元素的命令)  B ----BLOCK

BLPOP : BLPOP key-name [key-name ...] timeout ----从第一个非空列表中弹出位于最左端的元素,或者在time-out秒之内阻塞等待可弹出的元素出现

BRPOP : BRPOP key-name [key-name ...] timeout ----从第一个非空列表中弹出位于最右端的元素,或者在time-out秒之内阻塞等待可弹出的元素出现

RPOPLPUSH : RPOPLPUSH source-key dest-key ----------从soure-key 列表中弹出最右端的元素,然后将这个元素推入dest-key列表的最左端,并向用户返回这个元素

BRPOPLPUSH : BRPOPLPUSH  source-key dest-key timeout----------从soure-key 列表中弹出最右端的元素,然后将这个元素推入dest-key列表的最左端,并向用户返回这个元素;如果source-key为空,那么在timeout秒之内阻塞并等待可弹出的元素出现

 

>>> conn.rpush(list,item1)
1L
>>> conn.rpush(list,item2)
2L
>>> conn.rpush(list2,item3)
1L
>>> conn.brpoplpush(list2,list,1)
item3
>>> conn.brpoplpush(list2,list,1)
>>> conn.lrange(list,0,-1)
[item3, item1, item2]
>>> conn.brpoplpush(list2,list,1)
>>> conn.brpoplpush(list,list2,1)
item2
>>> conn.blpop([list,list2],1)
(list, item3)
>>> conn.blpop([list,list2],1)
(list, item1)
>>> conn.blpop([list,list2],1)
(list2, item2)
>>> conn.blpop([list,list2],1)

 

Redis列表操作