redis資料型別之list

2021-10-23 12:42:00 字數 3253 閱讀 6537

lpush:在列表的左邊插入元素,語法:lpush key element [element ...]

127.0.0.1:6379> lpush k1 a b c d

(integer) 4

lrange:檢視列表中的元素,語法:lrange key start stop

127.0.0.1:6379> lrange k1 0 -1

1) "d"

2) "c"

3) "b"

4) "a"

lpop:從列表的左邊取出乙個元素,語法:lpop key

127.0.0.1:6379> lpop k1

"d"127.0.0.1:6379> lpop k1

"c"127.0.0.1:6379> lpop k1

"b"127.0.0.1:6379> lpop k1

"a"

rpush:在列表的右邊插入元素,語法:rpush key element [element ...]

127.0.0.1:6379> rpush k1 a b c d

(integer) 4

rpush:從列表的右邊取出乙個元素,語法:rpop key

127.0.0.1:6379> rpop k1

"d"127.0.0.1:6379> rpop k1

"c"127.0.0.1:6379> rpop k1

"b"127.0.0.1:6379> rpop k1

"a"

lindex:查詢指定索引的元素,語法:lindex key index

127.0.0.1:6379> lpush k1 a b c d

(integer) 4

127.0.0.1:6379> lindex k1 -1

"a"

llen:獲取列表的長度,語法:llen key

127.0.0.1:6379> llen k1

(integer) 4

linsert:在指定元素的前面或後面插入元素,語法:linsert key before|after pivot element

127.0.0.1:6379> linsert k1 before b x

(integer) 5

127.0.0.1:6379> lrange k1 0 -1

1) "d"

2) "c"

3) "x"

4) "b"

5) "a"

lrem:根據指定個數的指定元素,語法:lrem key count element

127.0.0.1:6379> lrange k1 0 -1

1) "a"

2) "c"

3) "b"

4) "a"

5) "d"

6) "c"

7) "x"

8) "b"

9) "a"

127.0.0.1:6379> lrem k1 2 a

(integer) 2

127.0.0.1:6379> lrange k1 0 -1

1) "c"

2) "b"

3) "d"

4) "c"

5) "x"

6) "b"

7) "a"

使用的lrem的注意事項:

lset:設定指定索引位置的元素,語法:lset key index element

127.0.0.1:6379> lrange k1 0 -1

1) "y"

2) "x"

3) "c"

4) "c"

5) "a"

127.0.0.1:6379> lset k1 1 o

ok127.0.0.1:6379> lrange k1 0 -1

1) "y"

2) "o"

3) "c"

4) "c"

5) "a"

ltrim:擷取保留列表中指定索引的元素,語法:ltrim key start stop

127.0.0.1:6379> lrange k1 0 -1

1) "y"

2) "o"

3) "c"

4) "c"

5) "a"

127.0.0.1:6379> ltrim k1 2 3

ok127.0.0.1:6379> lrange k1 0 -1

1) "c"

2) "c"

lpos:在列表中匹配第乙個找到的元素,可以指定範圍,預設從頭到尾掃瞄。

127.0.0.1:6379> rpush k2 a b c 1 2 3 c c

(integer) 8

127.0.0.1:6379> lpos k2 c

(integer) 2

127.0.0.1:6379> lpos k2 c rank 2

(integer) 6

127.0.0.1:6379> lpos k2 c rank -1

(integer) 7

127.0.0.1:6379> lpos k2 c count 2

1) (integer) 2

2) (integer) 6

列表型別的內部編碼為quicklist

127.0.0.1:6379> rpush k3 a b c

(integer) 3

127.0.0.1:6379> object encoding k3

"quicklist"

鍊錶:lpush+rpop,rpush+lpop,反向命令的組合可以實現鍊錶。

棧:lpush+lpop,rpush+rpop,同向命令的組合可以實現棧。

陣列:rpush+lindex+lset,可以實現陣列的功能。

訊息佇列:lpush+brpop。

Redis資料型別 List

lpush 在對應的list頭部新增元素 127.0.0.1 6379 lpush mylist value1 integer 1 127.0.0.1 6379 lpush mylist value2 integer 2 列印出來看一下 127.0.0.1 6379 lrange mylist 0 ...

redis資料型別 List

list 列表 是鍊錶結構,新增或刪除元素是常量時間。list常用命令 lpush key value 從列表左邊新增元素 lpushx key value 從列表左邊新增元素,只有當key存在的時候才會新增,否則不執行。rpush key value 從列表右邊新增元素 rpushx key va...

Redis資料型別 List

list資料型別 lpush key value 新增list資料,value可以為多個值,假如我們使用方法新增 a b c 這個三個value的時候,實際上就執行了三次這個命令,等我們獲取資料的時候就是c b a lpushx key value 新增資料資訊,和lpush命令相反,從尾部開始新增...