Redis學習第四課:Redis List類型及操作


list是一個鏈表結構,主要功能是push、pop、獲取一個范圍的所有值等,操作中key理解為鏈表的名字。

Redis的list類型其實就是一個每個子元素都是string類型的雙向鏈表我們可以通過push、pop操作從鏈表的頭部或者尾部添加刪除元素,這樣list既可以作為棧,又可以作為隊列。

lpush:在key對應list的頭部添加字符串元素。(用法:lpush list鏈表名稱 元素值)

127.0.0.1:6379> lpush address "Shang Hai"

(integer) 1

127.0.0.1:6379> lpush address huangpu

(integer) 2

127.0.0.1:6379> lrange address 0 -1

1) "huangpu"

2) "Shang Hai"

rpush:在key對應list的尾部添加字符串元素。(用法:rpush list鏈表名稱 元素值)

127.0.0.1:6379> rpush address2 "Shang Hai"

(integer) 1

127.0.0.1:6379> rpush address2 "huangpu"

(integer) 2

127.0.0.1:6379> lrange address2 0 -1

1) "Shang Hai"

2) "huangpu"

linsert:在key對應list的特定位置前或后添加字符串。(用法:linsert list鏈表名稱 before|after 指定的某個元素值  需要插入的新元素值)

127.0.0.1:6379> linsert address2 before "huangpu" ","

(integer) 3

127.0.0.1:6379> lrange address2 0 -1

1) "Shang Hai"

2) ","

3) "huangpu"

lset:設置list中指定下標的元素值,即替換指定下標的元素值。(用法:lset list鏈表名稱  位置索引  元素新的值)

127.0.0.1:6379> lpush myColour "red"
(integer) 1
127.0.0.1:6379> lrange myColour 0 -1
1) "red"
127.0.0.1:6379> lset myColour 0 "yellow"
OK
127.0.0.1:6379> lrange myColour 0 -1
1) "yellow"

lrem:從key對應list中刪除n個和value相同的元素。(n<0 從尾刪除,n=0則全部刪除。)(用法:lrem list鏈表名稱 要刪除幾個  要刪除的元素值)

127.0.0.1:6379> lrange myColour 0 -1

1) "pink"

2) "red"

3) "red"

4) "purple"

5) "red"

6) "yellow"

127.0.0.1:6379> lrem myColour 1 "red"

(integer) 1

127.0.0.1:6379> lrange myColour 0 -1

1) "pink"

2) "red"

3) "purple"

4) "red"

5) "yellow"

127.0.0.1:6379> lrem myColour 0 "red"

(integer) 2

127.0.0.1:6379> lrange myColour 0 -1

1) "pink"

2) "purple"

3) "yellow"

ltrim:保留指定key的值范圍內的數據。即保留下標指定范圍的field,其他的被刪除。(用法:ltrim list鏈表名稱 位置索引1 位置索引2) 保留位置索引1 到位置索引2的元素,其余全部刪除。

127.0.0.1:6379> lrange myColour 0 -1

1) "yellow"

2) "purple"

3) "pink"

4) "red"

127.0.0.1:6379> ltrim myColour 2 -1

OK

127.0.0.1:6379> lrange myColour 0 -1

1) "pink"

2) "red"

lpop:從list的頭部刪除元素,並返回刪除元素。(用法:lpop list鏈表名稱)

127.0.0.1:6379> lrange myColour 0 -1

1) "pink"

2) "red"

127.0.0.1:6379> lpop myColour

"pink"

127.0.0.1:6379> lrange myColour 0 -1

1) "red"

rpoplpush:從第一個list的尾部移除元素添加到第二個list的頭部。(用法:rpoplpush 第一個list 第二個list)

127.0.0.1:6379> lrange myColour 0 -1

1) "red"

2) "black"

3) "blue"

4) "orange"

127.0.0.1:6379> rpoplpush myColour myColour1

"orange"

127.0.0.1:6379> lrange myColour1 0 -1

1) "orange"

lindex:返回名稱為key的list中index位置的元素,元素位置索引號從0開始。(用法:lindex list鏈表名稱 元素索引號index)

127.0.0.1:6379> lrange myColour 0 -1

1) "red"

2) "black"

3) "blue"

127.0.0.1:6379> lindex myColour 0

"red"

127.0.0.1:6379> lindex myColour 1

"black"

llen:返回key對應list的長度,即list的元素個數。 (用法:llen list鏈表名稱)

127.0.0.1:6379> lrange myColour 0 -1

1) "red"

2) "black"

3) "blue"

127.0.0.1:6379> llen myColour

(integer) 3

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM