共計 3299 個字符,預(yù)計需要花費 9 分鐘才能閱讀完成。
這篇文章主要介紹“Redis 中的 list 命令怎么使用”,在日常操作中,相信很多人在 Redis 中的 list 命令怎么使用問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Redis 中的 list 命令怎么使用”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學(xué)習(xí)吧!
list 的數(shù)據(jù)結(jié)構(gòu)
List 類型是一個雙端鏈表的結(jié)構(gòu),容量是 2 的 32 次方減 1 個元素,即 40 多億個; 其主要功能有 push、pop、獲取元素等; 一般應(yīng)用在棧、隊列、消息隊列等場景。
Redis list 命令實戰(zhàn)[l/r]push- 左 / 右添加元素
語法:[l/r]push key value [value …]
以頭插或尾插方式插入指定 key 隊列中一個或多個元素
127.0.0.1:6379 lpush pushkey 1 2 3
(integer) 3
127.0.0.1:6379 lpush pushkey 4
(integer) 4
127.0.0.1:6379 rpush pushkey 5
(integer) 5
127.0.0.1:6379 lrange pushkey 0 -1
1) 4
2) 3
3) 2
4) 1
5) 5
lrange- 查詢范圍元素
語法:lrange key start stop
獲取列表指定范圍內(nèi)的元素
127.0.0.1:6379 lpush products 1 2 3
(integer) 3
127.0.0.1:6379 lpush products 4 5 6
(integer) 6
127.0.0.1:6379 lrange products 0 -1
1) 6
2) 5
3) 4
4) 3
5) 2
6) 1
linsert- 在某元素前后插入元素
語法:linsert key BEFORE|AFTER pivot value
在列表的元素前或者后插入元素
127.0.0.1:6379 lrange products 0 -1
1) 6
2) 5
3) 4
4) 3
5) 2
6) 1
127.0.0.1:6379 linsert products before 5 a
(integer) 7
127.0.0.1:6379 lrange products 0 -1
1) 6
2) a
3) 5
4) 4
5) 3
6) 2
7) 1
127.0.0.1:6379 linsert products after a b
(integer) 8
127.0.0.1:6379 lrange products 0 -1
1) 6
2) a
3) b
4) 5
5) 4
6) 3
7) 2
8) 1
llen- 獲取長度
語法:llen key
獲取列表長度
127.0.0.1:6379 lrange products 0 -1
1) 6
2) a
3) b
4) 5
5) 4
6) 3
7) 2
8) 1
127.0.0.1:6379 llen products
(integer) 8
lindex- 根據(jù)下標(biāo)獲取元素
語法:lindex key index
通過索引獲取列表中的元素
127.0.0.1:6379 lrange products 0 -1
1) 6
2) a
3) b
4) 5
5) 4
6) 3
7) 2
8) 1
127.0.0.1:6379 lindex products 2
b
lset- 根據(jù)下標(biāo)設(shè)置值
語法:lset key index value
通過索引設(shè)置列表元素的值
127.0.0.1:6379 lrange products 0 -1
1) 6
2) a
3) b
4) 5
5) 4
6) 3
7) 2
8) 1
127.0.0.1:6379 lset products 2 B
127.0.0.1:6379 lrange products 0 -1
1) 6
2) a
3) B
4) 5
5) 4
6) 3
7) 2
8) 1
ltrim- 截取元素
語法:ltrim key start end
截取隊列指定區(qū)間的元素, 其余元素都刪除
127.0.0.1:6379 lrange products 0 -1
1) 6
2) a
3) B
4) 5
5) 4
6) 3
7) 2
8) 1
127.0.0.1:6379 ltrim products 0 3
127.0.0.1:6379 lrange products 0 -1
1) 6
2) a
3) B
4) 5
lrem- 移除元素
語法:lrem key count value
移除列表元素
127.0.0.1:6379 lpush test a 1 a 2 a 3 a 4 5 6
(integer) 10
127.0.0.1:6379 lrange test 0 -1
1) 6
2) 5
3) 4
4) a
5) 3
6) a
7) 2
8) a
9) 1
10) a
127.0.0.1:6379 lrem test 3 a
(integer) 4
127.0.0.1:6379 lrange test 0 -1
1) 6
2) 5
3) 4
4) 3
5) 2
6) 1
7) a
[l/r]pop- 從左 / 右彈出元素
語法:[l/r]pop key
從隊列的頭或尾彈出節(jié)點元素(返回該元素并從隊列中刪除)
127.0.0.1:6379 lrange test 0 -1
1) 6
2) 5
3) 4
4) 3
5) 2
6) 1
127.0.0.1:6379 lpop test
127.0.0.1:6379 lrange test 0 -1
1) 5
2) 4
3) 3
4) 2
5) 1
127.0.0.1:6379 rpop test
127.0.0.1:6379 lrange test 0 -1
1) 5
2) 4
3) 3
4) 2
rpoplpush- 移除右元素添加到另一列表左
語法:rpoplpush source destination
移除列表的最后一個元素 (右),并將該元素添加到另一個列表(左) 并返回
127.0.0.1:6379 lpush src 1 2 3
(integer) 3
127.0.0.1:6379 lrange src 0 -1
1) 3
2) 2
3) 1
127.0.0.1:6379 lpush dst a b c
(integer) 3
127.0.0.1:6379 lrange dst 0 -1
1) c
2) b
3) a
127.0.0.1:6379 rpoplpush src dst
127.0.0.1:6379 lrange src 0 -1
1) 3
2) 2
127.0.0.1:6379 lrange dst 0 -1
1) 1
2) c
3) b
4) a
b[l/r]pop- 阻塞彈出左 / 右一個元素
語法:b[l/r]pop key1 [key2 …] timeout
移出并獲取列表的第一個或最后一個元素,如果列表沒有元素會阻塞列表直到等待超時或發(fā)現(xiàn)可彈出元素為止。
127.0.0.1:6379 lpush list1 1 2
(integer) 2
127.0.0.1:6379 lpush list2 a b
(integer) 2
127.0.0.1:6379 lrange list1 0 -1
1) 2
2) 1
127.0.0.1:6379 lrange list2 0 -1
1) b
2) a
127.0.0.1:6379 blpop list1 list2 10
1) list1 # 彈出元素所屬的列表
2) 2 # 彈出元素所屬的值
127.0.0.1:6379 blpop list1 list2 10
1) list1
2) 1
127.0.0.1:6379 blpop list1 list2 10
1) list2
2) b
127.0.0.1:6379 blpop list1 list2 10
1) list2
2) a
127.0.0.1:6379 blpop list1 list2 10
(nil)
(10.08s) # 列表為空的時候,就等待超時 10 秒
到此,關(guān)于“Redis 中的 list 命令怎么使用”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注丸趣 TV 網(wǎng)站,丸趣 TV 小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>