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中建立商品評論列表,由於評論只是顯示前面的幾條數據,這樣響應的速度是很快的。