1. 程式人生 > 資料庫 >Redis資料型別-列表(List)

Redis資料型別-列表(List)

 

介紹:

列表型別(list)可以儲存一個有序的字串列表,常用的操作時向列表兩端新增元素,或者或者列表的某一個片段。

 

列表型別內部是使用雙向連結串列實現的。所以向列表兩端新增元素的時間複雜度為O(1),獲取越接近兩端的元素速度就越快。不過使用連結串列的代價是通過索引訪問元素比較慢,列表也適合用來記錄日誌,可以保證加入新日誌的速度也不會受到已有日誌數量的影響。一個列表型別鍵最多能容納2的32次方-1個值

 

命令:

 

命令 說明 示例
LPUSH key value value1... 向列表左邊增加元素,返回值表示增加元素後列表的長度。 LPUSH num 1 2
RPUSH key value value1... 向列表右邊增加元素,返回值表示增加元素後列表的長度。 RPUSH num 3 4
LPOP key 從左邊彈出元素,第一步是將列表左邊的元素從列表中移除,第二步是返回被移除的元素值 LPOP num
RPOP key 從右邊彈出元素,第一步是將列表左邊的元素從列表中移除,第二步是返回被移除的元素值 RPOP num
LLEN key 獲取列表中元素的個數,鍵不存在時返回0,時間複雜度O(1) LLEN num
LRANGE key start stop 獲取列表中的片段,不對獲取的片段刪除,返回索引從start到stop之間的所有元素(包括兩端的元素),支援負值 LRANGE num 1 2
LREM key count value 刪除列表中前count個值為value的元素,返回是實際刪除的元素個數。count>0從左邊開始刪除,count<0從右邊開始刪除,count=0刪除所有值為value的元素 LREM key 1 1
LINDEX key index 返回指定索引的元素,索引從0開始,如果index為負數,則從最右邊開始 LINDEX key 1
LSET key index value 將索引為index的元素賦值為value LSET key 1 100
LTRIM key start end 刪除指定索引範圍之外的所有元素 LTRIM key 1 2
LINSERT key BEFORE|AFTER pivot value 首先在列表中從坐到右查詢值為pivot的元素,然後根據第二次引數BEFORE或者AFTER來決定將value插入到元素的前面還是後面,返回列表的元素的個數 LINSERT key BEFORE 100 99 
RPOPLPUSH source destination 先執行RPOP命令再執行LPUSH命令,先從source列表右邊彈出一個元素,然後將其加入到destination列表型別鍵的左邊,返回這個元素的值 RPOPLPUSH from to