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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM