溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Redis列表的介紹及用法

發(fā)布時(shí)間:2021-07-30 14:54:46 來源:億速云 閱讀:154 作者:chen 欄目:大數(shù)據(jù)

這篇文章主要講解了“Redis列表的介紹及用法”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Redis列表的介紹及用法”吧!

Redis列表(List)

參考:https://www.runoob.com/redis/redis-lists.html

單值多value

1.lpush/rpush/lrange

                                 索引  0 1 2 3 4 
lpush 1 2 3 4 5                   5 4 3 2 1   先進(jìn)后出
rpush 1 2 3 4 5                  1 2 3 4 5    先進(jìn)先出

127.0.0.1:9736> LPUSH list01 1 2 3 4 5
(integer) 5
127.0.0.1:9736> LRANGE list01 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
127.0.0.1:9736> rpush list02 1 2 3 4 5
(integer) 5
127.0.0.1:9736> LRANGE list02 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
127.0.0.1:9736>

2. lpop/rpop

lpop 從索引首位置出

rpop 從索引尾位置出

127.0.0.1:9736> lpop list01 
"5"
127.0.0.1:9736> lrange list01 0 -1
1) "4"
2) "3"
3) "2"
4) "1"
127.0.0.1:9736> lpop list02
"1"
127.0.0.1:9736> LRANGE list02 0 -1
1) "2"
2) "3"
3) "4"
4) "5"
127.0.0.1:9736> rpop list01
"1"
127.0.0.1:9736> rpop list02
"5"
127.0.0.1:9736> lrange list01 0 -1
1) "4"
2) "3"
3) "2"
127.0.0.1:9736> lrange list02 0 -1
1) "2"
2) "3"
3) "4"

3.lindex 查看值所在索引

127.0.0.1:9736> lrange list01 0 -1
1) "4"
2) "3"
3) "2"
127.0.0.1:9736> lrange list02 0 -1
1) "2"
2) "3"
3) "4"

127.0.0.1:9736> lindex list01 1
"3"
127.0.0.1:9736> lindex list02 1
"3"

4. llen 查看list 的長度

127.0.0.1:9736> lrange list01 0 -1
1) "4"
2) "3"
3) "2"
127.0.0.1:9736> llen list01
(integer) 3

5. lrem key 刪N個(gè)同樣的value

此例中刪除2個(gè)3

127.0.0.1:9736> rpush list03 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5
(integer) 15
127.0.0.1:9736> lrem list03 2 3
(integer) 2
127.0.0.1:9736> LRANGE list03 0 -1
 1) "1"
 2) "1"
 3) "1"
 4) "2"
 5) "2"
 6) "2"
 7) "3"
 8) "4"
 9) "4"
10) "4"
11) "5"
12) "5"
13) "5"
127.0.0.1:9736>

6. ltrim key 開始index 結(jié)束index,截取指定范圍的值后再賦值給 key

此例截取0至3 就是 1 2 3 4 ,再賦值給 list01 。list01最終 1 2 3 4

127.0.0.1:9736> rpush list01 1 2 3 4 5 6
(integer) 6
127.0.0.1:9736> lrange list01 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
127.0.0.1:9736> LTRIM list01 0 3
OK
127.0.0.1:9736> lrange list01 0 -1
1) "1"
2) "2"
3) "3"
4) "4"

7. rpoplpush 源列表 目的列表

從源列表尾部彈出一個(gè)元素 到 目的列表的頭部

127.0.0.1:9736> lrange list01 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
127.0.0.1:9736> lrange list02 0 -1
1) "2"
2) "3"
3) "4"
127.0.0.1:9736> rpoplpush list01 list02
"4"
127.0.0.1:9736> lrange list02 0 -1
1) "4"
2) "2"
3) "3"
4) "4"
127.0.0.1:9736> lrange list01 0 -1
1) "1"
2) "2"
3) "3"

8. lset key index value

127.0.0.1:9736> lrange list01 0 -1
1) "1"
2) "2"
3) "3"
127.0.0.1:9736> lset list01 0 x
OK
127.0.0.1:9736> lrange list01  0 -1
1) "x"
2) "2"
3) "3"

9. linsert key before/after 值1 值2

在指定值的 前/后 插入值

127.0.0.1:9736> lrange list01  0 -1
1) "x"
2) "2"
3) "3"
127.0.0.1:9736> linsert list01 before x a
(integer) 4
127.0.0.1:9736> lrange list01 0 -1
1) "a"
2) "x"
3) "2"
4) "3"
127.0.0.1:9736> linsert list01 after x b
(integer) 5
127.0.0.1:9736> lrange list01 0 -1
1) "a"
2) "x"
3) "b"
4) "2"
5) "3"

10. 性能總結(jié):

它是一個(gè)字符串鏈表,left right 都可以插入添加,

如果鍵不存在,創(chuàng)建新的鏈表 如果鍵已存在,新增內(nèi)容; 如果值全移除, 對(duì)應(yīng)鍵也就消失了 ;

鏈表的操作無論頭和尾效率都很高, 但假如是對(duì)中間元素進(jìn)行操作. 效率就很低

感謝各位的閱讀,以上就是“Redis列表的介紹及用法”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Redis列表的介紹及用法這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI