基本的資料型別,列表
在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 的列表裡指定範圍內的元素,...