Redis清單是簡單的字元串清單,排序插入順序。您可以在頭部或清單的尾部Redis的清單添加元素。
清單的最大長度為232 - 1 (每個清單超過4十億元素4294967295)元素。
首先,插入資料到清單當中:
> lpush my_list1 zhibin
(integer) 1
> lpush my_list1 biki
(integer) 2
> rpush my_list1 good
(integer) 3
#查詢隊列的長度
> llen my_list1
(integer) 3
插入清單,可以使用lpush和rpush指令,left可以視為表頭,right可以視為表尾。
擷取清單中的資料:
#按範圍取資料
> lrange my_list1 0 4
1) "biki"
2) "zhibin"
3) "good"
#從清單的左面彈出一個元素
> lpop my_list1
"biki"
如下表所示相關列出了一些基本的指令:
S.N. | 指令 & 描述 |
---|---|
1 | BLPOP key1 [key2 ] timeout 取出并擷取清單中的第一個元素,或阻塞,直到有可用 |
2 | BRPOP key1 [key2 ] timeout 取出并擷取清單中的最後一個元素,或阻塞,直到有可用 |
3 | BRPOPLPUSH source destination timeout 從清單中彈出一個值,它推到另一個清單并傳回它;或阻塞,直到有可用 |
4 | LINDEX key index 從一個清單其索引擷取對應的元素 |
5 | LINSERT key BEFORE|AFTER pivot value 在清單中的其他元素之後或之前插入一個元素 |
6 | LLEN key 擷取清單的長度 |
7 | LPOP key 擷取并取出清單中的第一個元素 |
8 | LPUSH key value1 [value2] 在前面加上一個或多個值的清單 |
9 | LPUSHX key value 在前面加上一個值清單,僅當清單中存在 |
10 | LRANGE key start stop 從一個清單擷取各種元素 |
11 | LREM key count value 從清單中删除元素 |
12 | LSET key index value 在清單中的索引設定一個元素的值 |
13 | LTRIM key start stop 修剪清單到指定的範圍内 |
14 | RPOP key 取出并擷取清單中的最後一個元素 |
15 | RPOPLPUSH source destination 删除最後一個元素的清單,将其附加到另一個清單并傳回它 |
16 | RPUSH key value1 [value2] 添加一個或多個值到清單 |
17 | RPUSHX key value 添加一個值清單,僅當清單中存在 |
參考連接配接:(http://www.yiibai.com/redis/redis_lists.html)
可以利用list類型實作的功能:
1.實作先進先出隊列(FIFO)以及棧(LIFO)
隊列在web應用的範圍非常廣,比如日志推送、任務處理等等,以往使用httpsqs實作隊列,其實,使用redis的list類型,也可以實作隊列。
> lpush list a
(integer) 1
> lpush list b
(integer) 2
> lpush list c
(integer) 3
#接下來,使用rpop取出隊列
> rpop list
"a"
#思考一下,如果我們使用lpop會出現什麼情況呢?
> lpop list
"c"
#結果是最後一個入列的元素"c"出列了,這不就是一個棧的結構麼?