Redis List 命令技巧

2022-04-17 01:06:12 字數 1802 閱讀 6380

lpush + lpop = stack

127.0.0.1:6379> lpush mylist 123

45(integer)

5127.0.0.1:6379>lpop mylist"5

"127.0.0.1:6379>lpop mylist"4

"127.0.0.1:6379> lrange mylist 0 -1

1) "3"

2) "2"

3) "

1"

lpush + rpop   = queue

127.0.0.1:6379> lpush mylist 4

5(integer)

5127.0.0.1:6379> lrange mylist 0 -1

1) "5"

2) "4"

3) "3"

4) "2"

5) "1"

127.0.0.1:6379>rpop mylist"1

"127.0.0.1:6379>rpop mylist"2

"127.0.0.1:6379> lrange mylist 0 -1

1) "5"

2) "4"

3) "

3"

ltrim [ltrim key  range_l range_r]:保留區域類的元素,其他的刪除

127.0.0.1:6379> rpush mylist 2

1(integer)

5127.0.0.1:6379> lrange mylist 0 -1

1) "5"

2) "4"

3) "3"

4) "2"

5) "1"

127.0.0.1:6379> ltrim mylist 23ok

127.0.0.1:6379> lrange mylist 0 -1

1) "3"

2) "

2"

lpush + brpop = message queue

redis brpop 命令移出並獲取列表的最後乙個元素, 如果列表沒有元素會阻塞列表直到等待超時或發現可彈出元素為止。

操作命令   brpop list  timeout

brpop mylist 10

返回值假如在指定時間內沒有任何元素被彈出,則返回乙個 nil 和等待時長。 反之,返回乙個含有兩個元素的列表,第乙個元素是被彈出元素所屬的 key ,第二個元素是被彈出元素的值。

127.0.0.1:6379> lpush mylist 123

45(integer)

5127.0.0.1:6379> brpop mylist 10

1) "

mylist

"2) "1"

127.0.0.1:6379> brpop mylist 100

1) "

mylist

"2) "2"

127.0.0.1:6379> brpop mylist 10000

1) "

mylist

"2) "3"

127.0.0.1:6379> brpop mylist 10

1) "

mylist

"2) "4"

127.0.0.1:6379> brpop mylist 10

1) "

mylist

"2) "5"

127.0.0.1:6379> brpop mylist 10

(nil)

(10.05s)

Redis list相關命令

redis中的 list 可當成棧 佇列 阻塞佇列。命令以 l 開頭。插入值到列表的頭部 左邊 和尾部 右邊 允許插入重複值。list也允許使用lset等方式賦值,但前提是list存在 lpush list v1 lpush list v2 lpush list v3 此時檢視列表所有值,則得到乙個...

Redis list型別常用操作命令

1.lpush key value 在鍊錶的左側push乙個值,當沒有key這個鍊錶時,建立這個鍊錶。例如在user鍊錶的左側新增乙個元素 lpush user admin 2.rpush key value 在鍊錶的右側push乙個值,當沒有key這個鍊錶時,建立這個鍊錶。例如在user鍊錶的右側...

Redis list型別操作

在key對應list頭部新增字串 lpush key string 從list頭部刪除,返回刪除的元素 lpop key 在尾部新增 rpush key string 在list尾部刪除元素,返回刪除的元素 rpop key 對應list的長度 key不存在返回0,如果key對應的型別不是list則...