Redis(二)list的操作

2021-10-05 12:26:09 字數 3784 閱讀 5384

基本的資料型別,列表

在redis裡面,可以把list完成棧、佇列、阻塞佇列

所有的list命令都是l開頭的

#  list的操作  lpush  rpush   lrange:檢視

127.0.0.1:6379> keys *

(empty list or set)

127.0.0.1:6379> lpush list one # lpush 將乙個值或者多個值插入到list的####×××頭部×××######(左)

(integer) 1

127.0.0.1:6379> lpush list two

(integer) 2

127.0.0.1:6379> lpush list three

(integer) 3

127.0.0.1:6379> lrange list 0 -1 # 獲取具體的值--通過區間

1)"three"

2)"two"

3)"one"

127.0.0.1:6379> lrange list 0 1

1)"three"

2)"two"

127.0.0.1:6379> rpush list right # rpush 將乙個值或者多個值插入到list的××尾部××(右)

(integer) 4

127.0.0.1:6379> lrange list 0 -1

1)"three"

2)"two"

3)"one"

4)"right"

# lpop rpop

127.0.0.1:6379> lpop list # 移除list第乙個元素

"three"

127.0.0.1:6379> rpop list # 移除list的最後乙個元素

"right"

127.0.0.1:6379> lrange list

(error) err wrong number of arguments for

'lrange'

command

127.0.0.1:6379> lrange list 0 -1

1)"two"

2)"one"

# index 通過下標獲取值

127.0.0.1:6379> lindex list 1

"one"

127.0.0.1:6379> lindex list 0

"two"

# llen 返回列表的長度

127.0.0.1:6379> llen list

(integer) 2

# 移除指定的值! lrem

127.0.0.1:6379> lpush list "four"

(integer) 4

127.0.0.1:6379> lpush list "five"

(integer) 5

127.0.0.1:6379> lpush list "three"

(integer) 6

127.0.0.1:6379> lpush list "three"

"three"

(integer) 8

127.0.0.1:6379> lrange list 0 -1

1)"three"

2)"three"

3)"three"

4)"five"

5)"four"

6)"three"

7)"three"

8)"two"

##############

127.0.0.1:6379> lrem list 1 three # 從上往下移除乙個three

(integer) 1

##############

127.0.0.1:6379> lrange list 0 -1

1)"three"

2)"three"

3)"five"

4)"four"

5)"three"

6)"three"

7)"two"

127.0.0.1:6379> lrem list 3 "three"

# 從上往下移除三個three

(integer) 3

127.0.0.1:6379> lrange list 0 -1

1)"five"

2)"four"

3)"three"

4)"two"

# ltrim 擷取

127.0.0.1:6379> ltrim list 1 2

ok127.0.0.1:6379> lrange list 0 -1

1)"four"

2)"three"

# rpoplpush 移除列表的最後乙個元素,並新增到另乙個的列表頭!

127.0.0.1:6379> lrange list 0 -1

1)"four"

2)"three"

127.0.0.1:6379> lrange list1 0 -1

1)"hello4"

2)"hello3"

3)"hello2"

4)"hello1"

5)"hello"

6)"hello4"

127.0.0.1:6379> lrange list2 0 -1

1)"hello1"

2)"hello2"

3)"hello3"

4)"hello4"

##############

127.0.0.1:6379> rpoplpush list list1

##############

"three"

127.0.0.1:6379> lrange list 0 -1

1)"four"

127.0.0.1:6379> lrange list1 0 -1

1)"three"

2)"hello4"

3)"hello3"

4)"hello2"

5)"hello1"

6)"hello"

7)"hello4"

# lset 將列表中指定的下標的值替換成另乙個值

127.0.0.1:6379> lset list 0 item # 存在的話會替換當前的值

ok127.0.0.1:6379> lrange list 0 -1

1)"item"

127.0.0.1:6379> lset list 1 item1 # 不存在的話就會報錯!

(error) err index out of range

# linsert 將某個具體的值插入到列表中,某個元素前面和後面

127.0.0.1:6379> linsert list before item other

(integer) 2

127.0.0.1:6379> lrange list 0 -1

1)"other"

2)"item"

127.0.0.1:6379> linsert list after item other1

(integer) 3

127.0.0.1:6379> lrange list 0 -1

1)"other"

2)"item"

3)"other1"

小結:

訊息排隊!訊息佇列(lpush rpop)!棧(lpush lpop)

Redis 列表List操作

list 就是在同乙個key value中儲存多個value值,是乙個雙向鍊錶 1.從左推入 乙個或者多個value lpush key value1 value2 value3.2.從右推入乙個或多個value rpush key value1 value2 value3.3.從左移除並返回val...

redis針對list操作

redis的list型別其實就是乙個每個子元素都是string型別的雙向鍊錶。鍊錶的最大長度是 2的32次方 我們可以通過push,pop操作從鍊錶的頭部或者尾部新增刪除元素。這使得list既可以用作棧,也可以用作佇列。有意思的是list的pop操作還有阻塞版本的,當我們 lr pop乙個list物...

Redis操作List命令

lpush 將所有指定的值插入到 key 的列表的頭部,元素是從最左端到最右端的 乙個接乙個被插入到 list 的頭部 rpush 將所有指定的值插入到 key 的列表的尾部,元素是從最右端到最左端的 乙個接乙個被插入到 list 的尾部 lrange 返回儲存在 key 的列表裡指定範圍內的元素,...