Redis資料型別-列表(List)
阿新 • • 發佈:2021-01-10
介紹:
列表型別(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 |