Redis(五):List集合数据类型详解
生活随笔
收集整理的這篇文章主要介紹了
Redis(五):List集合数据类型详解
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Redis列表是簡單的字符串列表,按照插入順序排序。你可以添加一個(gè)元素到列表的頭部(左邊)或者尾部(右邊)
一個(gè)列表最多可以包含 232 - 1 個(gè)元素 (4294967295, 每個(gè)列表超過40億個(gè)元素)。
實(shí)例:
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成為,棧、隊(duì)列、阻塞隊(duì)列!
1、List常用命令
1.1、LPUSH、LRANGE、RPUSH
127.0.0.1:6379> LPUSH list v1 //將一個(gè)或者多個(gè)的值插入到列表頭部(左) (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 //將一個(gè)或者多個(gè)的值插入到列表尾部(右) (integer) 4 127.0.0.1:6379> LRANGE list 0 -1 //通過區(qū)間獲取list的值 1) "v3" 2) "v2" 3) "v1" 4) "v4r"//可以看出這個(gè)順序是:v3 v2 v1 v4r 127.0.0.1:6379>1.2、LPOP、RPOP
127.0.0.1:6379> LPOP list //移除list第一個(gè)元素(左) "v3" 127.0.0.1:6379> rPOP list //移除list最后一個(gè)元素(右) "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 //通過下標(biāo)獲得list的某一個(gè)值 "v2" 127.0.0.1:6379> LINDEX list 1 "v1"1.4、Llen
127.0.0.1:6379> LLEN list //獲取list長度 (integer) 21.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中指定個(gè)數(shù)(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 //移除列表中最后一個(gè)元素到新的列表中 "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 //替換列表指定位置的值,如過不存在會(huì)報(bào)錯(cuò) 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 //將某個(gè)值插入列表指定值的前面 (integer) 4 127.0.0.1:6379> LINSERT list after v2 vv2 //將某個(gè)值插入列表指定值的后面 (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、小結(jié)
- List可以被想象為一個(gè)鏈表,可以befor node after ,left,right進(jìn)行插入;
- 如果key不存在,創(chuàng)建新鏈表,如果存在,新增內(nèi)容;
- 如果移除了所有值,則代表不存在;
- 在兩邊插入或改動(dòng),效率最高,中間元素效率偏低;
總結(jié)
以上是生活随笔為你收集整理的Redis(五):List集合数据类型详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 统计内存使用率shell
- 下一篇: Kafka:常用命令