NoSQL資料庫Redis之青幹劍(lists型別)的修煉

hm2462964492發表於2012-10-17
今天來看我們的Redis神器的第三把劍,青幹劍(lists型別)的修煉:

第三把----------------------青幹lists型別


介紹:List是一個連結串列結構,主要功能是push、pop、獲取一個範圍的所有值等等,操作中key理解為連結串列的名字。Redis的list型別其實就是一個每個子元素都是string型別的雙向連結串列。我們可以通過push、pop操作從連結串列的頭部或者尾部新增刪除元素,這樣list既可以作為棧,又可以作為佇列。


技能:


1.lpush


在key對應list的頭部新增字串元素


redis 127.0.0.1:6379> lpush mylist "world"
(integer) 1
redis 127.0.0.1:6379> lpush mylist "hello"
(integer) 2
redis 127.0.0.1:6379> lrange mylist 0 -1
1) "hello"
2) "world"


2.rpush


在key對應list的尾部新增字串元素

redis 127.0.0.1:6379> rpush mylist2 "world"
(integer) 1
redis 127.0.0.1:6379> rpush mylist2 "hello"
(integer) 2
redis 127.0.0.1:6379> lrange mylist2 0 -1
1) "hello"
2) "world"


3.linsert


在key對應list的特定位置前或後新增字串

redis 127.0.0.1:6379> rpush mylist3 "world"
(integer) 1
redis 127.0.0.1:6379> linsert mylist3 before "world" "hello"
(integer) 2
redis 127.0.0.1:6379> lrange mylist3 0 -1
1) "hello"
2) "world"


4.lset


設定list中指定下標的元素值


redis 127.0.0.1:6379> rpush mylist4 "hello"
(integer) 1
redis 127.0.0.1:6379> lset mylist4 0 "world"
OK
redis 127.0.0.1:6379> lrange mylist4 0 -1
1) "world"


4.lrem


從key對應list中刪除n個和value相同的元素。(n<0從尾刪除,n=0全部刪除)


redis 127.0.0.1:6379> rpush mylist5 "hello"
(integer) 1
redis 127.0.0.1:6379> rpush mylist5 "hello"
(integer) 1
redis 127.0.0.1:6379> lrem mylist5 1 "hello"
(integer) 1

5.ltrim


保留指定key的值範圍內的資料

redis 127.0.0.1:6379> rpush mylist8 "one"
(integer) 1
redis 127.0.0.1:6379> rpush mylist8 "two"
(integer) 2
redis 127.0.0.1:6379> ltrim mylist8 1 -1
(integer) 1 
redis 127.0.0.1:6379> lrange mylist5 1 "hello"
(integer) 1


6.lpop


從list的頭部刪除元素,並返回刪除元素

redis 127.0.0.1:6379> lrange mylist 0 -1
1) "hello"
2) "world"
redis 127.0.0.1:6379> lpop mylist
"hello"
redis 127.0.0.1:6379> lrange mylist 0 -1
"world"
redis 127.0.0.1:6379>


7.rpop


從list的尾部刪除元素,並返回刪除元素

redis 127.0.0.1:6379> lrange mylist2 0 -1
1) "hello"
2) "world"
redis 127.0.0.1:6379> rpop mylist2
"world"
redis 127.0.0.1:6379> lrange mylist2 0 -1
1) "hello"
redis 127.0.0.1:6379>


8.rpoplpush


從第一個list的尾部移除元素並新增到第二個list的頭部

redis 127.0.0.1:6379> lrange mylist2 0 -1
1) "hello"
2) "world"
redis 127.0.0.1:6379> rpop mylist2
"world"
redis 127.0.0.1:6379> lrange mylist2 0 -1
1) "hello"
redis 127.0.0.1:6379>


9.lindex


返回名稱為key的list中index位置的元素

redis 127.0.0.1:6379> lrange mylist5 0 -1
1) "three"
2) "foo"
redis 127.0.0.1:6379> lindex mylist5 0
"three"
redis 127.0.0.1:6379> lindex mylist5 1

"foo"
redis 127.0.0.1:6379>


10.llen


返回key對應list的長度

redis 127.0.0.1:6379> llen mylist5
(integer) 2
redis 127.0.0.1:6379> 


哈哈,這樣我們的第三把劍的武功祕籍也出爐啦,以上所有的技能,你看看到底掌握了多少,有問題在下邊跟帖回覆即可!

相關文章