一、引言

今天继续来学习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>