Redis數據類型:List

Redis數據類型:List

Redis學習準備篇
https://blog.csdn.net/longqiyuye925/article/details/106246041

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

127.0.0.1:6379> lpush list one --將值插入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> get list
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379> lrange list 0 -1 --獲取list中的值
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 --從list鏈表的右邊插入一個值
(integer) 4
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "two"
3) "one"
4) "right"
127.0.0.1:6379> lpop list --從左邊移除鏈表的第一個元素
"three"
127.0.0.1:6379> lrange list 0 -1 
1) "two"
2) "one"
3) "right"
127.0.0.1:6379> rpop list --從右邊移除鏈表的第一個元素
"right"
127.0.0.1:6379> lrange list 0 -1
1) "two"
2) "one"
127.0.0.1:6379> lindex list 1 --通過索引取出鏈表的值
"one"
127.0.0.1:6379> llen list --返回鏈表的長度
(integer) 2
127.0.0.1:6379>
127.0.0.1:6379> lrange list 0 -1
1) "two"
2) "one"
127.0.0.1:6379> lpush three
(error) ERR wrong number of arguments for 'lpush' command
127.0.0.1:6379> lpush list three
(integer) 3
127.0.0.1:6379> lpush list three
(integer) 4
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "three"
3) "two"
4) "one"
127.0.0.1:6379> lrem list 2 three --移除鏈表指定數量的指定值
(integer) 2
127.0.0.1:6379> lrange list 0 01
1) "two"
2) "one"
127.0.0.1:6379> lrange list 0 -1
1) "two"
2) "one"
127.0.0.1:6379> rpush mylist "hello"
(integer) 1
127.0.0.1:6379> rpush mylist "hello1"
(integer) 2
127.0.0.1:6379> rpush mylist "hello2"
(integer) 3
127.0.0.1:6379> rpush mylist "hello3"
(integer) 4
127.0.0.1:6379> ltrim mylist 1 2 --通過下標索引截取鏈表的值
OK
127.0.0.1:6379> lrange mylist 0 -1
1) "hello1"
2) "hello2"
127.0.0.1:6379> rpoplpush mylist myotherlist --移除列表中的最後一個元素,將它移動到新的列表中
"hello2"
127.0.0.1:6379> lrange mylist 0 -1
1) "hello1"
127.0.0.1:6379> lrange myotherlist 0 -1
1) "hello2"
127.0.0.1:6379>
127.0.0.1:6379> exists list --判讀是否存在
(integer) 1
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"
127.0.0.1:6379> lpush list three
(integer) 3
127.0.0.1:6379> lset list 0 mmm --替換鏈表中指定索引的指定值
OK
127.0.0.1:6379> lrange list 0 -1
1) "mmm"
2) "two"
3) "one"
127.0.0.1:6379> linsert list before two abc --在指定值的前面插入新值
(integer) 4
127.0.0.1:6379> lrange list 0 -1
1) "mmm"
2) "abc"
3) "two"
4) "one"
127.0.0.1:6379> linsert list after one zx ----在指定值的後面插入新值
(integer) 5
127.0.0.1:6379> lrange list 0 -1
1) "mmm"
2) "abc"
3) "two"
4) "one"
5) "zx"
127.0.0.1:6379>

小結

  • list類型它實際上是一個鏈表,before Node after,left, right 都可以插入值

  • 如果key不存在,創建新的鏈表

  • 如果key存在,新增內容

  • 如果移除了所有值,空鏈表,也代表不存在

  • 在兩插入或者改動值,效率最高!中簡元素,效率會低一些

    消息排隊 、 消息隊列(Lpush Roop),棧(Lpush Lpoo)

–本文寫作時借鑑了狂神這名UP主的視頻講解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章