Python-Redis的List操作


Redis列表是簡單的字符串列表,一個列表可以包含超過40億個元素

lpush(name,values):在name對應的list中添加元素,每個新的元素都添加到列表的最左邊

rpush(name, values):在name對應的list中添加元素,每個新的元素都添加到列表的最右邊

lrange(name, start, end):在name列表中分片獲取數據,start為索引的起始位置,end為索引結束位置

127.0.0.1:6379> lpush name jack john andy jane
(integer) 4
127.0.0.1:6379> lrange name 0 -1
1) "jane"
2) "andy"
3) "john"
4) "jack"
127.0.0.1:6379> rpush web html javascript php
(integer) 3
127.0.0.1:6379> lrange web 0 -1
1) "html"
2) "javascript"
3) "php"

lpushx(name,value):在name對應的list中添加元素,只有name已經存在時,值才添加到列表的最左邊

rpushx(name, value):在name對應的list中添加元素,只有name已經存在時,值才添加到列表的最右邊

127.0.0.1:6379> lpushx name alex
(integer) 5
127.0.0.1:6379> lrange name 0 -1
1) "alex"
2) "jane"
3) "andy"
4) "john"
5) "jack"
127.0.0.1:6379> lpushx name1 alex
(integer) 0
127.0.0.1:6379> rpushx web asp
(integer) 4
127.0.0.1:6379> lrange web 0 -1
1) "html"
2) "javascript"
3) "php"
4) "asp"

llen(name):name對應的list元素的個數

127.0.0.1:6379> lrange web 0 -1
1) "html"
2) "javascript"
3) "php"
4) "asp"
127.0.0.1:6379> llen web
(integer) 4

lindex(name, index):在name對應的列表中根據索引獲取列表元素

127.0.0.1:6379> lrange web 0 -1
1) "html"
2) "javascript"
3) "php"
127.0.0.1:6379> lindex web 1
"javascript"

linsert(name, where, refvalue, value):在name對應的列表的某一個值前或后插入一個新值

where為BEFORE或AFTER,refvalue為標桿值,即要插到的地方,value為要插入的數據

127.0.0.1:6379> lrange web 0 -1
1) "html"
2) "javascript"
3) "php"
4) "asp"
127.0.0.1:6379> linsert web before javascript css
(integer) 5
127.0.0.1:6379> lrange web 0 -1
1) "html"
2) "css"
3) "javascript"
4) "php"
5) "asp"

lset(name, index, value):對name對應的list中的某一個索引位置重新賦值,index為list的索引位置,value為要設置的值

127.0.0.1:6379> lrange web 0 -1
1) "html"
2) "css"
3) "javascript"
4) "php"
5) "asp"
127.0.0.1:6379> lset web -1 aspx
OK
127.0.0.1:6379> lrange web 0 -1
1) "html"
2) "css"
3) "javascript"
4) "php"
5) "aspx"

lrem(name, num, value):在name對應的list中刪除指定的值

num=0時刪除列表中所有的指定值,num=2時從前到后,刪除2個,num=-2時從后向前,刪除2個,value為要刪除的值

127.0.0.1:6379> lrange web 0 -1
1) "html"
2) "css"
3) "html"
4) "javascript"
5) "php"
6) "aspx"
127.0.0.1:6379> lrem web 1 html
(integer) 1
127.0.0.1:6379> lrange web 0 -1
1) "css"
2) "html"
3) "javascript"
4) "php"
5) "aspx"

lpop(name):在name對應的list的左邊獲取第一個元素返回並移除

rpop(name):在name對應的list的右邊獲取第一個元素返回並移除

127.0.0.1:6379> lrange web 0 -1
1) "css"
2) "html"
3) "javascript"
4) "php"
5) "aspx"
127.0.0.1:6379> lpop web
"css"
127.0.0.1:6379> lrange web 0 -1
1) "html"
2) "javascript"
3) "php"
4) "aspx"
127.0.0.1:6379> rpop web
"aspx"
127.0.0.1:6379> lrange web 0 -1
1) "html"
2) "javascript"
3) "php"

ltrim(name, start, end):在name對應的list中移除沒有在start到end索引之間的值,start為索引的起始位置,end為索引結束位置

127.0.0.1:6379> lrange web 0 -1
1) "html"
2) "css"
3) "javascript"
4) "php"
5) "asp"
127.0.0.1:6379> ltrim web 1 3
OK
127.0.0.1:6379> lrange web 0 -1
1) "css"
2) "javascript"
3) "php"

rpoplpush(src, dst):從一個列表取出最右邊的元素,同時將其添加至另一個列表的最左邊,src為要取數據的列表,dst為要添加數據的列表

127.0.0.1:6379> lrange name 0 -1
1) "alex"
2) "jane"
3) "andy"
4) "john"
5) "jack"
127.0.0.1:6379> lrange web 0 -1
1) "html"
2) "css"
3) "javascript"
4) "php"
5) "asp"
127.0.0.1:6379> rpoplpush name web
"jack"
127.0.0.1:6379> lrange name 0 -1
1) "alex"
2) "jane"
3) "andy"
4) "john"
127.0.0.1:6379> lrange web 0 -1
1) "jack"
2) "html"
3) "css"
4) "javascript"
5) "php"
6) "asp"

brpoplpush(src, dst, timeout):從一個列表的右側移除一個元素並將其添加到另一個列表的左側

src為取出並要移除元素的列表,dst為要插入元素的列表對應的name,timeout為當src對應的列表中沒有數據時,阻塞等待其有數據的超時時間(秒),0 表示永遠阻塞

127.0.0.1:6379> lrange web 0 -1
1) "html"
2) "css"
3) "javascript"
4) "php"
5) "asp"
127.0.0.1:6379> lrange name 0 -1
1) "alex"
2) "jane"
3) "andy"
4) "john"
127.0.0.1:6379> brpoplpush name web 1
"john"
127.0.0.1:6379> lrange web 0 -1
1) "john"
2) "html"
3) "css"
4) "javascript"
5) "php"
6) "asp"
127.0.0.1:6379> lrange name 0 -1
1) "alex"
2) "jane"
3) "andy"

blpop(keys, timeout):獲取並移除列表從左往右的第一個元素, 如果列表沒有元素會阻塞列表直到等待超時或發現元素為止

brpop(keys, timeout):獲取並移除列表從左往右的第一個元素, 如果列表沒有元素會阻塞列表直到等待超時或發現元素為止

timeout為超時時間,當元素所有列表的元素獲取完之后,阻塞等待列表內有數據的時間(秒), 0 表示永遠阻塞

127.0.0.1:6379> lrange web 0 -1
1) "html"
2) "css"
3) "javascript"
4) "php"
5) "asp"
127.0.0.1:6379> blpop web 1
1) "web"
2) "html"
127.0.0.1:6379> lrange web 0 -1
1) "css"
2) "javascript"
3) "php"
4) "asp"
127.0.0.1:6379> brpop web 1
1) "web"
2) "asp"
127.0.0.1:6379> lrange web 0 -1
1) "css"
2) "javascript"
3) "php"

 


免責聲明!

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



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