(五)Redis基本型別 列表型別(List)

2021-08-14 20:59:09 字數 1908 閱讀 8137

1、介紹

列表型別可以儲存乙個有序的字串列表,常用的操作是向列表兩端新增元素,或者獲得列表的某乙個片段。

列表內部是使用雙向鍊錶實現的,獲取越接近兩端的元素速度越快。

乙個列表型別鍵最多能容納2的32次方-1個元素。

2、命令

(1)向列表兩端增加元素

lpush key value [value ...]

rpush key value [value ...]

lpush命令用來向列表左邊新增元素,返回值表示增加元素後列表的長度。且該命令支援同時增加多個元素。

rpush同lpush,用來向列表右邊新增元素。

(2)從列表兩端彈出元素

lpop key

rpop key

lpop命令,從列表左邊彈出乙個元素,該命令執行兩步操作:①將列表左邊的元素從列表中移除。②返回被移除的元素。

rpop命令同lpop。結合(1)中提到的四個命令,可以使用列表型別來模擬棧和佇列操作。

(3)獲得列表中元素的個數

llen key
該命令無需像部分關係型資料庫那樣需要遍歷一遍資料表來統計條目數量。

(4)獲得列表片段

lrange key start stop
lrange命令返回索引從start到stop之間的所有元素(包含兩端的元素)。redis列表起始索引為0。

lrange獲得列表片段的同時,不會像lpop一樣將元素片段從列表中刪除。

lrange支援負索引,表示從右邊開始計算序數。如 "-1" 表示最右邊第乙個元素,"-2" 表示最右邊第二個元素,以此類推。

lrange key 0 -1 可以獲取列表中所有元素。另外若start的索引位置比stop的索引位置靠後,則會返回空列表,若stop大於實際的索引範圍,則會返回到列表最右邊的元素。

(5)刪除列表中指定的值

lrem key count value
lrem命令會刪除列表中前count個值為value的元素,返回值是實際刪除的元素個數。根據count 值的不同,lrem命令的執行方式會略有差異:

(6)獲得/設定指定索引的元素值

lindex key index

lset key index value

lindex 命令用來返回指定索引元素,索引從 0 開始。如果 index 是負數,則表示從右邊開始計算的索引,最右邊元素的索引是 -1。

lset 可以將索引為 index 的元素賦值為value。

(7)只保留列表指定片段

ltrim key start end
ltrim 命令可以刪除指定索引範圍之外的所有元素

ltrim 命令和 lpush 命令一起使用來限制列表中元素數量。比如記錄日誌時,我們希望只保留最近的100條日誌,則每次加入新元素時呼叫一次 ltrim 即可。

(8)向列表中插入元素

linsert key before|after pivot value
linsert 命令首先會在列表中從左到右查詢值為 pivot 的元素,然後根據第二個引數 before 還是 after 來決定將value值插入到該元素的前面還是後面。

(9)將元素從乙個列表轉到另乙個列表

rpoplpush source destination
從名字可以看出它需要先執行rpop,再執行lpush命令。rpoplpush命令先從 source 列表型別鍵的右邊彈出乙個元素,然後再將其加入到 destination 列表型別鍵的左邊,並返回這個元素的值,整個過程是原子的。

Redis五種基本型別的操作

string舉例 新增 修改乙個 string 127.0.0.1 6379 set test 123 重新賦值 127.0.0.1 6379 set test 456 查詢乙個string 127.0.0.1 6379 get test 注 integer 6 返回字串的長度 刪除乙個key 12...

redis五大基本型別 String

string 字串 指定配置檔案啟動redis,並連線,預設6379埠,看如何連線 root 5444 src redis server redis2.conf root 5444 src redis cli p 6380 127.0.0.1 6380 ping pong 記錄命令,先看 set g...

Redis 基本型別之 Set 型別

基本指令 sadd 127.0.0.1 6379 sadd myset hello 在集合中新增元素 integer 1 127.0.0.1 6379 sadd myset iron integer 1 127.0.0.1 6379 sadd myset egg integer 1 smembers...