以有序的方式儲存多個可重複的值redis
推入和彈出操做
瞭解如何向列表添加項,以及如何從列表裏面刪除項。
從列表的左端推入 值
LPUSH key value [value ...]
將一個或以上數量的值依次推入到列表的左端,命令返回新 值被推入以後,列表目前包含的 項數量。
複雜度爲 O(N) ,其中 N 爲被推入值的數量,若是隻推入一個值,那麼命令的複雜度爲 O(1) 。
redis> LPUSH lst "Lua"
(integer) 1
redis> LPUSH lst "Python"
(integer) 2
redis> LPUSH lst "C"
(integer) 33d
如圖blog
舉個例子,執行命令:
redis> LPUSH lst "Lua" "Python" "C"
(integer) 3
和依次執行如下三個命令的效果同樣:
LPUSH lst "Lua"
LPUSH lst "Python"
LPUSH lst "C"索引
RPUSH key value [value ...]
將一個或以上數量的值依次推入到列表的右端,命令返回新 值被推入以後,列表目前包含的 項數量。
複雜度爲 O(N) ,其中 N 爲被推入值的數量,若是隻推入一個值,那麼命令的複雜度爲 O(1) 。
redis> RPUSH lst "Clojure"
(integer) 1
redis> RPUSH lst "Ruby"
(integer) 2
redis> RPUSH lst "C"
(integer) 3遍歷
從列表的兩端 彈 出 項
命令 做用 復 雜 度
LPOP key 移除並返回列表最左端的項。 O(1)
RPOP key 移除並返回列表最右端的項。 O(1)im
長度、索引和範圍操做d3
LLEN、LINDEX、LLRANGEtop
獲 取列表的 長 度
LLEN key
返回列表鍵 key 的長度,也便是,返回列表包含的列表 項數量。
由於 Redis 會記錄每一個列表的長度,因此這個命令無須遍歷列表,它的複雜度爲 O(1) 。
redis> LLEN lst
(integer) 5
redis> LPOP lst
"Clojure"
redis> LLEN lst
(integer) 4img
返回 給 定索引上的 項
LINDEX key index
返回列表鍵 key 中,指定索引 index 上的列表項。index 索引能夠是正數或者負數。
複雜度爲 O(N) ,N 列表的長度。
redis> LINDEX lst 1
"Ruby"
redis> LINDEX lst 4
"Lua"
redis> LINDEX lst -3
"C"di
LRANGE key start stop
返回列表鍵 key 中,從索引 start 至索引 stop 範圍內的全部列表項。兩個索引參數均可以是正數或者
負數。
複雜度爲 O(N) , N 爲被返回的列表項數量。
redis> LRANGE lst 0 2
1) "Clojure"
2) "Ruby"
3) "C"
redis> LRANGE lst -3 -1
1) "C"
2) "Python"
3) "Lua"