Redis學習筆記(六)---List

1.ArrayList與LinkList的區別redis

ArrayList的使用數組存入的方式,因此根據索引查詢數據速度快,而增刪元素是比較慢的,它須要將數據一位一位的移動,知道達到要求。數組

LinkList使用的是雙向鏈表的方式存儲數據的,每個元素都記錄先後元素的指針,因此插入、刪除數據是很快的,可是想要查找元素,就相對比較慢了。若是查詢前幾個元素或者後面的幾個元素是比較快的。spa

2.redis list的介紹指針

列表類型(list)能夠存儲一個有序的列表字符串,經常使用的操做是向列表兩端添加元素,或者獲取列表的某一段。code

列表使用的是雙向鏈表實現的嗎,因此向列表中添加元素的複雜度爲o(1),獲取越接近兩端的數據,速度越快,若是數據量很大,查找中間是很慢的。blog

3.命令索引

3.1向兩端添加元素圖片

向左邊添加元素。字符串

語法:LPUSH key value [value]io

127.0.0.1:6379> lpush list:1 2 4 6 (integer) 3

向左邊添加元素。

語法:RPUSH key value [value]

 
127.0.0.1:6379> Rpush list:1 7 8 9 (integer) 3

查看列表

LRANGE命令是列表最經常使用的命令之一,獲取列表中的某一段,將返回tart、是圖片之間的數據返回,從0開始,索引能夠爲負,-1表明最後的一個元素。

語法:LRANGE key start stop

127.0.0.1:6379> lrange list:1 0 2

從列表的兩端將數據彈出

LPOP命令從列表左邊彈出一個元素,會分兩步完成:將數據刪除,將數據返回。

語法:LPOP key  左彈出

      RPOP key 右彈出

127.0.0.1:6379> lpop list:1 127.0.0.1:6379> rpop list:1

獲取數據的個數

語法:LLEN key

127.0.0.1:6379> llen list:1

刪除全部的值

LREM命令會刪除列表中前count個值爲value的元素,返回實際刪除的元素個數。根據count值的不一樣,該命令的執行方式會有所不一樣:

當count>0時, LREM會從列表左邊開始刪除

當count<0時, LREM會從列表後邊開始刪除。

當count=0時, LREM刪除全部值爲value的元素。

語法:LREM key count value

獲取、設置指定索引的元素值

語法:LINDEX key index

127.0.0.1:6379> lindex l:list 2

設置值

LSET key index value

127.0.0.1:6379> lset l:list 2 2 OK 127.0.0.1:6379> lrange l:list 0 -1

 只保留保留列表指定的片斷

LTRIM key start stop

127.0.0.1:6379> lrange l:list 0 -1

向列表中插入數據

語法:LINSERT key BEFORE|AFTER pivot value

linsert list after 3 4 linsert list before 3 4

將一個元素從一個列表移動到另外一個列表中

語法:RPOPLPUSH source destination

RPOPLPUSH list1 list2;

4.應用場景:

Redis中建立商品評論列表,由於評論只是顯示前面的幾條數據,這樣響應的速度是很快的。

相關文章
相關標籤/搜索