列表型別用來儲存多個有序的字串,可以從兩端進行插入(push)和彈出(pop)操作,獲取指定範圍的元素列表,獲取指定索引的元素等
lpush:從左邊插入元素
lpush key value1 value2 ...
rpush:從右邊插入元素
rpush key value1 value2 ...
linsert:在某個元素前或後插入元素,返回列表長度
linsert key before|after pivot value
在d元素前新增e元素
127.0.0.1:6379[2]> rpush list a b c d
(integer) 4
127.0.0.1:6379[2]> linsert list before d e
(integer) 5
127.0.0.1:6379[2]> lrange list 0 -1
1) "a"
2) "b"
3) "c"
4) "e"
5) "d"
lrange:獲取指定範圍的元素列表索引從0開始,最後乙個元素的索引為
-1
lrange key start end
獲取全部元素:
lrange key 0 -1
lindex:獲取指定索引下標的元素
lindex key index
獲取最後乙個元素:
lindex key -1
llen:獲取列表長度
llen key
lpop:從左側彈出元素(刪除並返回)
lpop key
127.0.0.1:6379[2]> lrange list 0 -1
1) "a"
2) "b"
3) "c"
4) "e"
5) "d"
127.0.0.1:6379[2]> lpop list
"a"127.0.0.1:6379[2]> lrange list 0 -1
1) "b"
2) "c"
3) "e"
4) "d"
rpop:從右側彈出元素(刪除並返回)
rpop key
lrem:刪除指定元素
lrem key count value
lrem會從列表中找到value元素進行刪除,根據count分為三種情況:
除了lpop和rpop兩個彈出命令外,還有兩個彈出命令,叫做阻塞彈出,分別是blpop
和brpop
blpop:規定時間內獲取並移除資料,timeout:單位為秒
blpop key timeout
如果列表不為空,就立刻返回列表和彈出的元素
127.0.0.1:6379[2]> blpop list 10
"list"
"a"
如果列表為空,就阻塞timeout長時間,如果指定時間內其他客戶端沒有新增元素就返回nil,如果指定時間內其他客戶端新增了元素,就返回列表和彈出的元素
127.0.0.1:6379[2]> blpop list 10
(nil)
(10.05s)
lset:修改指定索引下標的元素
lset key index newvalue
修改列表索引為0的元素為b:
127.0.0.1:6379[2]> lrange list 0 -1
1) "c"
2) "f"
3) "e"
127.0.0.1:6379[2]> lset list 0 b
ok127.0.0.1:6379[2]> lrange list 0 -1
1) "b"
2) "f"
3) "e"
列表型別內部有2種編碼:
可以使用object encoding key
檢視當前編碼
當元素小於521個,且元素值小於64位元組
127.0.0.1:6379> rpush listkey e1 e2 e3
(integer) 3
127.0.0.1:6379> object encoding listkey
"ziplist"
當元素大於521個
27.0.0.1:6379> rpush listkey e4 e5 ... e512 e513
(integer) 513
127.0.0.1:6379> object encoding listkey
"linkedlist"
redis3.2
版本提供了quicklist
內部編碼,簡單地說它是以乙個ziplist
為節點的linkedlist
,它結合了ziplist
和linkedlist
兩者的優勢,為列表型別提供了一種更為優秀的內部編碼實現
通過lpush
和brpop
可以實現訊息佇列,生產方通過lpush新增元素,多個消費方通過brpop獲取元素
通過lpush
和lpop
可以實現棧
通過lrange
可以實現列表的分頁功能
資料結構之列表
在基礎資料結構中,列表作為最為基礎的乙個資料結構進行體現,在乙個程式中決定效率的關鍵核心因素就是資料結構和資料演算法,二者共同決定 時間複雜度的型別,因此萬丈高樓平地起,就從最基礎的列表操作和分析其時間複雜度開始 方法1 列表賦值 lis 方法2 列表疊加 列表疊加要注意,疊加的是可迭代物件 新增列...
python資料結構之列表
和字串一樣,列表也是python中使用最普遍的資料結構之一,而且它很靈活,可以儲存多種不同的物件 數字,字串,甚至於其他的列表。列表的建立方法 1 利用python的內建方法list l1 list python l1 p y t h o n 2 直接賦值給方括號,元素之間用逗號隔開 l2 1,2,...
python資料結構之列表
null list int list 1 2,3 str list a b c int str list 1 2,a b int list 1 2,3 int list 4 out 1,2,3,1,2,3,1,2,3,1,2,3 一種是利用 操作符 int list 1 2,3 str list a...