日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis(五):List集合数据类型详解

發布時間:2025/3/8 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis(五):List集合数据类型详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Redis列表是簡單的字符串列表,按照插入順序排序。你可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)

一個列表最多可以包含 232 - 1 個元素 (4294967295, 每個列表超過40億個元素)。

實例:

redis 127.0.0.1:6379> LPUSH runoobkey redis (integer) 1 redis 127.0.0.1:6379> LPUSH runoobkey mongodb (integer) 2 redis 127.0.0.1:6379> LPUSH runoobkey mysql (integer) 3 redis 127.0.0.1:6379> LRANGE runoobkey 0 101) "mysql" 2) "mongodb" 3) "redis"

在Redis中我們可以使List成為,棧、隊列、阻塞隊列!

1、List常用命令

1.1、LPUSH、LRANGE、RPUSH

127.0.0.1:6379> LPUSH list v1 //將一個或者多個的值插入到列表頭部(左) (integer) 1 127.0.0.1:6379> LPUSH list v2 (integer) 2 127.0.0.1:6379> LPUSH list v3 (integer) 3 127.0.0.1:6379> RPUSH list v4r //將一個或者多個的值插入到列表尾部(右) (integer) 4 127.0.0.1:6379> LRANGE list 0 -1 //通過區間獲取list的值 1) "v3" 2) "v2" 3) "v1" 4) "v4r"//可以看出這個順序是:v3 v2 v1 v4r 127.0.0.1:6379>

1.2、LPOP、RPOP

127.0.0.1:6379> LPOP list //移除list第一個元素(左) "v3" 127.0.0.1:6379> rPOP list //移除list最后一個元素(右) "v4r" 127.0.0.1:6379> LRANGE list 0 -1 1) "v2" 2) "v1" 127.0.0.1:6379>

1.3、Lindex

127.0.0.1:6379> LINDEX list 0 //通過下標獲得list的某一個值 "v2" 127.0.0.1:6379> LINDEX list 1 "v1"

1.4、Llen

127.0.0.1:6379> LLEN list //獲取list長度 (integer) 2

1.5、LREM

127.0.0.1:6379> LRANGE list 0 -1 1) "v4" 2) "v4" 3) "v3" 4) "v2" 5) "v1" 127.0.0.1:6379> LREM list 2 v4 //移除list中指定個數(2)的值(v4) (integer) 2 127.0.0.1:6379> LRANGE list 0 -1 1) "v3" 2) "v2" 3) "v1" 127.0.0.1:6379>

1.6、trim

127.0.0.1:6379> LRANGE list 0 -1 1) "v4" 2) "v3" 3) "v2" 4) "v1" 127.0.0.1:6379> LTRIM list 1 2 //將list在指定位置截取 OK 127.0.0.1:6379> LRANGE list 0 -1 1) "v3" 2) "v2" 127.0.0.1:6379>

1.7、組合命令rpoplpush

127.0.0.1:6379> LRANGE list 0 -1 1) "v4" 2) "v3" 3) "v2" 4) "v1" 127.0.0.1:6379> rpoplpush list list2 //移除列表中最后一個元素到新的列表中 "v1" 127.0.0.1:6379> LRANGE list 0 -1 1) "v4" 2) "v3" 3) "v2" 127.0.0.1:6379> LRANGE list2 0 -1 1) "v1" 127.0.0.1:6379>

1.8、lset

127.0.0.1:6379> EXISTS list2 //查詢列表是否存在 (integer) 1 127.0.0.1:6379> LRANGE list2 0 -1 1) "v1" 127.0.0.1:6379> LSET list2 0 vv //替換列表指定位置的值,如過不存在會報錯 OK 127.0.0.1:6379> LRANGE list2 0 -1 1) "vv" 127.0.0.1:6379>

1.9、linset

127.0.0.1:6379> LRANGE list 0 -1 1) "v4" 2) "v3" 3) "v2" 127.0.0.1:6379> LINSERT list before v2 vv //將某個值插入列表指定值的前面 (integer) 4 127.0.0.1:6379> LINSERT list after v2 vv2 //將某個值插入列表指定值的后面 (integer) 5 127.0.0.1:6379> LRANGE list 0 -1 1) "v4" 2) "v3" 3) "vv" 4) "v2" 5) "vv2" 127.0.0.1:6379>

2、小結

  • List可以被想象為一個鏈表,可以befor node after ,left,right進行插入;
  • 如果key不存在,創建新鏈表,如果存在,新增內容;
  • 如果移除了所有值,則代表不存在;
  • 在兩邊插入或改動,效率最高,中間元素效率偏低;

總結

以上是生活随笔為你收集整理的Redis(五):List集合数据类型详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。