一、引言
今天继续来学习redis基本数据类型的常用命令,redis中的命令难度不大,主要多练习就行了。
List数据类型是一个链表结构,操作中的key可以理解为链表中的名字。list类型每一个子元素都是String类型的双向链表,我们可以通过push、pop操作向list集合头部或者尾部删除、新增元素,这里list既可以作为栈,又可以作为队列。
大家可以先了解一下堆栈的概念 https://jingyan.baidu.com/article/6c67b1d6a09f9a2786bb1e4a.html
二、List数据类型常用命令
01 lpush :将一个元素或者多个元素新增到列表的头部,返回当前list中元素数量,采用的是 栈。
127.0.0.1:6379> lpush mylist duck
(integer) 1
127.0.0.1:6379> lpush mylist bear
(integer) 2
127.0.0.1:6379>
02 lrange:返回list集合中指定区间中的元素,0下标代表第一个元素,-1代表最后一个元素。
127.0.0.1:6379> lrange mylist 0 -1
1) "bear"
2) "duck"
127.0.0.1:6379>
03 rpush:将一个元素或者多个元素新增到列表的尾部,返回当前list中元素数量,采用的是 队列。
127.0.0.1:6379> rpush mylist2 bird
(integer) 1
127.0.0.1:6379> rpush mylist2 elephant
(integer) 2
127.0.0.1:6379> lrange mylist2 0 -1
1) "bird"
2) "elephant"
127.0.0.1:6379>
04 linsert:在指定列表的元素前或者后插入元素,以下是在bird元素之前插入tiger元素
127.0.0.1:6379> lrange mylist2 0 -1
1) "bird"
2) "elephant"
127.0.0.1:6379> linsert mylist2 before bird tiger
(integer) 3
127.0.0.1:6379> lrange mylist2 0 -1
1) "tiger"
2) "bird"
3) "elephant"
127.0.0.1:6379>
05 lset:设置list列表中指定元素下标的值, 下标0代表第一个元素,替换成了bear。
127.0.0.1:6379> lrange mylist2 0 -1
1) "tiger"
2) "bird"
3) "elephant"
127.0.0.1:6379> lset mylist2 0 bear
OK
127.0.0.1:6379> lrange mylist2 0 -1
1) "bear"
2) "bird"
3) "elephant"
127.0.0.1:6379>
06 lrem:从对应list列表中删除n和value相同的元素,"lrem list 1 noe"代表在list列表中删除1和noe相同的元素。
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "tow"
3) "noe"
4) "noe"
127.0.0.1:6379> lrem list 1 noe
(integer) 1
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "tow"
3) "noe"
127.0.0.1:6379>
07 ltrim:保留指定key值范围内的数据,已知list列表有三个元素,现在只想保留前两个,最后显示tow已经去掉了
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "noe"
3) "tow"
127.0.0.1:6379> ltrim list 0 1
OK
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "noe"
127.0.0.1:6379>
08 lpop:从列表头部删除一个元素,返回删除的元素值。
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "noe"
127.0.0.1:6379> lpop list
"three"
127.0.0.1:6379> lrange list 0 -1
1) "noe"
127.0.0.1:6379>
09 rpop:从列表尾部删除一个元素,返回删除的元素值。
127.0.0.1:6379> lrange list 0 -1
1) "four"
2) "three"
3) "tow"
4) "noe"
127.0.0.1:6379> rpop list
"noe"
127.0.0.1:6379> lrange list 0 -1
1) "four"
2) "three"
3) "tow"
127.0.0.1:6379>
10 rpoplpush:从第一个列表尾部移除一个元素并且添加到第二个列表中头部
从第一个列表中尾部移除一个元素 ,mylist2尾部的元素elephant 。 rpop命令干的事
往第二个列表的头部添加一个元素,list中的头部添加元素elephant。 lpush命令干的事
127.0.0.1:6379> lrange mylist2 0 -1
1) "bear"
2) "bird"
3) "elephant"
127.0.0.1:6379> lrange list 0 -1
1) "four"
2) "three"
3) "tow"
127.0.0.1:6379> rpoplpush mylist2 list
"elephant"
127.0.0.1:6379> lrange list 0 -1
1) "elephant"
2) "four"
3) "three"
4) "tow"
127.0.0.1:6379>
11 lindex: 返回列表中指定下标的元素值,元素下标0开始
127.0.0.1:6379> lrange list 0 -1
1) "elephant"
2) "four"
3) "three"
4) "tow"
127.0.0.1:6379> lindex list 0
"elephant"
127.0.0.1:6379> lindex list 3
"tow"
127.0.0.1:6379>
12 llen:返回列表中元素的个数
127.0.0.1:6379> lrange list 0 -1
1) "elephant"
2) "four"
3) "three"
4) "tow"
127.0.0.1:6379> llen list
(integer) 4
127.0.0.1:6379>