1. 程式人生 > >Redis資料結構--Lists常用命令

Redis資料結構--Lists常用命令

左為L 右為R,以下命令有左有右

格式:lpush key value [value ...]
示例:lpush mylist 1 2
作用:從左邊入隊一個或者多個元素
成功:返回佇列中元素的個數
失敗:

格式:lpushx key value
示例:lpushx mylist 1
作用:當佇列存在時從左邊入隊一個元素
成功:返回佇列中元素的個數
失敗:0(list不存在)

格式:lpop key
示例:lpop mylist
作用:從左邊出隊一個元素
成功:返回對應元素的值
失敗:nil(list不存在或者長度為0)

只有L

格式:lindex key index


示例:lindex mylist 1
作用:通過下標獲取對應元素
成功:返回佇列中對應的元素值
失敗:nil(list對應元素不存在)

格式:linsert key before|after pivot value
示例:lindex mylist before 2 3
作用:在列表中的另一個元素之前或之後插入一個元素
成功:返回插入後list的長度
失敗:-1(list對應元素不存在)

格式:llen key
示例:llen mylist
作用:獲取list的長度
成功:返回佇列的長度
失敗:0(對應list不存在或為空)

格式:lrange key start stop


示例:lrange mylist 0 -1
作用:從列表中獲取指定返回的元素,從0開始,-1代表尾部第一個,-2代表尾部第二個
成功:返回佇列對應元素
失敗:0(對應list不存在或為取值範圍有誤)

格式:lrem key count value
示例:lrem mylist -2 2
作用:移除佇列中前count次出現的value元素。count<0,尾部開始;= 0,全部;>0,頭部開始。
成功:返回移除的個數
失敗:0(對應list不存在或為對應元素為空)

格式:lset key index value
示例:lset mylist 1 a
作用:設定佇列裡一個元素的值
成功:OK
失敗:ERR no such key(對應list不存在) ERR index out of range(下標越界)

格式:ltrim key start stop
示例:ltrim mylist 1 5
作用:修剪list,相當於substring
成功:OK
失敗:

只有R

格式:rpoplpush source destination
示例:rpoplpush mylist mylist2
作用:刪除列表最後一個元素,將其追加到另一個列表
成功:移動的元素
失敗:nil(source不存在)
注意:如果source和destination相同,相當於把最後一個元素放到第一個

阻塞佇列 B

如果所有給定 key 都不存在或包含空列表,那麼 BLPOP 命令將阻塞連線, 直到有另一個客戶端對給定的這些 key 的任意一個執行 LPUSH 或 RPUSH 命令為止。
一旦有新的資料出現在其中一個列表裡,那麼這個命令會解除阻塞狀態,並且返回 key 和彈出的元素值。

格式:blpop key[key ...] timeout
示例:blpop list1 list2 list3 0
作用:刪除並獲得列表中第一個元素或阻塞直到一個可用。timeout 引數表示的是一個指定阻塞的最大秒數的整型值。當 timeout 為 0 是表示阻塞時間無限制。
成功:對應的元素值
失敗:

格式:brpop key[key ...] timeout
示例:brpop list1 list2 list3 0
作用:刪除並獲得列表中最後一個元素或阻塞直到一個可用。timeout 引數表示的是一個指定阻塞的最大秒數的整型值。當 timeout 為 0 是表示阻塞時間無限制。
成功:對應的元素值
失敗:

格式:brpoplpush source destination timeout
示例:brpoplpush list1 list2 0
作用:彈出一個列表的值,將它推到另一個列表,並返回它或者阻塞知道有一個可用。
成功:對應的元素值
失敗: