redis命令之-list

小亮520cl發表於2015-09-06
個人筆記:勿詳看(詳細線上文件)

  1.    list命令
lpush 向list插入資料,每次都是插入最左邊 ,可多個也可單個(每次插左邊) LPUSH key value 
lrange 檢視list的資料 LRANGE key 0 -1
lpushx 向list插入資料,每次都是插入最左邊 ,可多個也可單個(前提:key必須存在)
lpushx key value
llen 檢視key的長度 llen key
lrem 移除某些資料 lrem key 0 XXX
redis>LREM greet 2 morning     # 移除從表頭到表尾,最先發現的兩個 morning
redis> LREM greet -1 morning    # 移除從表尾到表頭,第一個 morning
redis> LREM greet 0 hello      # 移除表中所有 hello
lset 重置某些資料 lset key n XXXX
redis> LSET job 0 "play game"
ltrim 刪除了n1-n2之外的資料
ltrim key n1 n2
redis> LTRIM alpha 1 10086     # 保留 alpha 列表索引 1 至索引 10086 上的元素
rpop 移除並返回列表的尾元素 rpop key 
redis> RPOP mylist           # 返回被彈出的元素
"three"

redis> LRANGE mylist 0 -1    # 列表剩下的元素
1) "one"
2) "two"
lpop 移除並返回列表的頭元素
lpop key 
rpush 向list插入資料,每次都是插入最左邊 ,可多個也可單個(每次插右邊)
rpush key value 
rpushx 向list插入資料,每次都是插入最右邊 ,可多個也可單個(前提:key必須存在)
rpushx key value 
linsert

LINSERT key BEFORE|AFTER pivot value

將值 value 插入到列表 key 當中,位於值 pivot 之前或之後。

當 pivot 不存在於列表 key 時,不執行任何操作。

當 key 不存在時, key 被視為空列表,不執行任何操作。

如果 key 不是列表型別,返回一個錯誤。


127.0.0.1:6379> RPUSH mylist "Hello"
(integer) 1
127.0.0.1:6379> RPUSH mylist "World"
(integer) 2
127.0.0.1:6379> lrange mylist 0 -1
1) "Hello"
2) "World"
127.0.0.1:6379> LINSERT mylist BEFORE "World" "There"
(integer) 3
127.0.0.1:6379> lrange mylist 0 -1
1) "Hello"
2) "There"
3) "World"

lindex

LINDEX key index

返回列表 key 中,下標為 index 的元素。


127.0.0.1:6379> LINDEX mylist 0
"Hello"
127.0.0.1:6379> LINDEX mylist 1
"There"
127.0.0.1:6379> LINDEX mylist 2
"World"

BRPOP

BRPOP key [key ...] timeout

BRPOP 是列表的阻塞式(blocking)彈出原語。

它是 RPOP 命令的阻塞版本,當給定列表內沒有任何元素可供彈出的時候,連線將被 BRPOP 命令阻塞,直到等待超時或發現可彈出元素為止。

當給定多個 key 引數時,按引數 key 的先後順序依次檢查各個列表,彈出第一個非空列表的尾部元素。

關於阻塞操作的更多資訊,請檢視 BLPOP 命令, BRPOP 除了彈出元素的位置和 BLPOP 不同之外,其他表現一致。


redis> LLEN course
(integer) 0

redis> RPUSH course algorithm001
(integer) 1

redis> RPUSH course c++101
(integer) 2

redis> BRPOP course 30
1) "course"             # 被彈出元素所屬的列表鍵
2) "c++101"             # 被彈出的元素
BLPOP 從第一個不為空的list列表開始,彈出不為空的l列表的key的名稱,移除並返回最左邊的元素。 127.0.0.1:6379> LPUSH command "update system..."
(integer) 1
127.0.0.1:6379>  LPUSH request "visit page" 
(integer) 1
127.0.0.1:6379> BLPOP job command request 0 
1) "command"
2) "update system..."
127.0.0.1:6379> llen command
(integer) 0


RPOPLPUSH 比RPOP多了一個push的動作,移除並展示最右邊的元素並且Lpush到新的列表 127.0.0.1:6379> RPOPLPUSH alpha reciver
"d"
127.0.0.1:6379> lrange alpha 0 -1
1) "a"
2) "b"
3) "c"
127.0.0.1:6379> lrange reciver 0 -1
1) "d"

BRPOPLPUSH 當給出的的list為空時會堵塞5秒 127.0.0.1:6379> BRPOPLPUSH emtpylist newlist 5
(nil)
(5.01s)





未完待續。。。。持續更新。。。。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29096438/viewspace-1792563/,如需轉載,請註明出處,否則將追究法律責任。

相關文章