【Redis之List类型的详解&List类型中常用命令的实践】

Redis之List类型的详解&List类型中常用命令的实践

知识回顾:

通过对Redis中的String的命令做了充分的讲解以及实践学习
通过对Redis中String类型之Bit命令的详解以及Bit命令的实践进行了学习

接下来的学习任务:
接下来我们学习Redis中的Hash类型以及Hash中常用命令的实践学习。

Redis中String类型内容请看这里呦:
【Redis之String类型的详解&String类型中常用命令的实践】
Redis中String类型是Bit命令内容请看这里呦:
【Redis中String类型之Bit命令的详解&Bit命令的实践】
Redis之Hash类型的详解&Hash类型中常用命令的实践请看这里呦:
【Redis之Hash类型的详解&Hash类型中常用命令的实践】

Redis中List的介绍

列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)一个列表最多可以包含 2^32 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。

Redis中List的基本命令结构

list的基本命令 key的值 集合的元素

在这里插入图片描述

Redis中List的常用命令

List常用命令备注说明
lpush向列表头部添加一个或多个元素
lrange获取列表中指定的元素0第一个,-1最后一个
rpush向列表尾部添加一个或多个元素
llen获取列表长度
lset通过index设置列表的值
rpop移除列表最后一个元素,并返回
lpop移除列表头部元素,并返回
lindex获取列表中对应下标的值
ltrim截取列表对应的元素
blpoplpop的阻塞版
brpoprpop的阻塞版
rpoplpush移除一个列表的最后一个元素,并将该元素添加到另一个列表的头部
brpoplpushrpoplpush的阻塞版本

lpush命令

lpush将所有指定的值插入到存于 key 的列表的头部。
如果 key 不存在,那么在进行 push 操作前会创建一个空列表,然后再将元素插入到集合中。
如果key是存在的,那么直接在key对应的集合中添加元素。
返回的结果是插入的元素个数。

127.0.0.1:6379> lpush classid 1 2 3 4 5
(integer) 5
127.0.0.1:6379> lpush classid 7 8
(integer) 7
127.0.0.1:6379> 


在这里插入图片描述

lrange命令

从列表中获取指定区间的元素。
start 和 end 偏移量都是基于0的下标,list的下标是从0开始的。
偏移量也可以是负数,表示偏移量是从list尾部开始计数。 例如,-1 表示列表的最后一个元素,-2 是倒数第二个,以此类推。

127.0.0.1:6379> lrange classid 0 -1
1) "8"
2) "7"
3) "5"
4) "4"
5) "3"
6) "2"
7) "1"
127.0.0.1:6379> lrange classid 0 6
1) "8"
2) "7"
3) "5"
4) "4"
5) "3"
6) "2"
7) "1"
127.0.0.1:6379> lrange classid -1 -5
(empty array)
127.0.0.1:6379> lrange classid -5 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
127.0.0.1:6379> 

在这里插入图片描述

rpush命令

rpush命令和lpush的命令是一样的。只是从链表放入元素的方向不同。
将所有指定的值插入到存于 key 的列表的尾部。
如果 key 不存在,那么在进行 push 操作前会创建一个空列表,然后再将元素插入到集合中。
如果key是存在的,那么直接在key对应的集合中添加元素。
返回的结果是插入的元素个数。

127.0.0.1:6379> rpush classid1 7 6 5 4 3 2 1
(integer) 7
127.0.0.1:6379> 

在这里插入图片描述

llen命令

获取列表的长度。

127.0.0.1:6379> llen classid
(integer) 7
127.0.0.1:6379> llen classid1
(integer) 7
127.0.0.1:6379> 

在这里插入图片描述

lset命令

通过下标设置列表对应的下标的值。

127.0.0.1:6379> lrange classid 0 -1
1) "8"
2) "7"
3) "5"
4) "4"
5) "3"
6) "2"
7) "1"
127.0.0.1:6379> lset classid 0 9
OK
127.0.0.1:6379> lrange classid 0 -1
1) "9"
2) "7"
3) "5"
4) "4"
5) "3"
6) "2"
7) "1"
127.0.0.1:6379> 

在这里插入图片描述

lpop命令

lpop命令,移除的是头部的元素。

127.0.0.1:6379> lrange classid 0 -1
1) "9"
2) "7"
3) "5"
4) "4"
5) "3"
6) "2"
7) "1"
127.0.0.1:6379> lpop classid
"9"
127.0.0.1:6379> lpop classid
"7"
127.0.0.1:6379> lrange classid 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
127.0.0.1:6379> 

在这里插入图片描述

rpop命令

rpop命令,移除的是尾部的元素。

127.0.0.1:6379> lrange classid 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
127.0.0.1:6379> rpop classid
"1"
127.0.0.1:6379> rpop classid
"2"
127.0.0.1:6379> lrange classid 0 -1
1) "5"
2) "4"
3) "3"
127.0.0.1:6379> 

在这里插入图片描述

lindex命令

lindex命令返回key中对应的index的下标的值。0表示第一个,-1表示最后一个。以此类推。。

127.0.0.1:6379> lrange classid 0 -1
1) "5"
2) "4"
3) "3"
127.0.0.1:6379> lindex classid 0
"5"
127.0.0.1:6379> lindex classid 1
"4"
127.0.0.1:6379> lindex classid -1
"3"
127.0.0.1:6379> lindex classid -2
"4"
127.0.0.1:6379> 

在这里插入图片描述

ltrim命令

ltrim截取列表中的部分元素。0第一个,-1最后一个,以此类推。
没有截取的元素直接舍弃。

127.0.0.1:6379> lrange classid 0 -1
1) "5"
2) "4"
3) "3"
127.0.0.1:6379> ltrim classid 0 1
OK
127.0.0.1:6379> lrange classid 0 -1
1) "5"
2) "4"
127.0.0.1:6379> 

blpop命令

blpop是阻塞式列表的弹出原语。 它是命令 lpop的阻塞版本。
当给定列表内没有任何元素可供弹出的时候, 连接将被 blpop命令阻塞。
当给定多个 key 参数时,按参数 key 的先后顺序依次检查各个列表,弹出第一个非空列表的头元素。
同时在使用此命令的时候也需要指定过期时间,单位是秒。返回的接口是key和列表元素值

127.0.0.1:6379> lrange classid 0 -1
1) "5"
2) "4"
127.0.0.1:6379> blpop classid 15
1) "classid"
2) "5"
127.0.0.1:6379> blpop classid 15
1) "classid"
2) "4"
127.0.0.1:6379> blpop classid 15
^[[A(nil)
(15.03s)
127.0.0.1:6379> 

在这里插入图片描述

brpop命令

brpop是阻塞式列表的弹出原语。 它是命令 rpop 的阻塞版本。
当给定列表内没有任何元素可供弹出的时候, 连接将被 brpop命令阻塞。
当给定多个 key 参数时,按参数 key 的先后顺序依次检查各个列表,弹出第一个非空列表的头元素。
同时在使用此命令的时候也需要指定过期时间,单位是秒。返回的接口是key和列表元素值

127.0.0.1:6379> rpush classid 1 2 3 4
(integer) 4
127.0.0.1:6379> lrange classid 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
127.0.0.1:6379> brpop classid 5
1) "classid"
2) "4"
127.0.0.1:6379> brpop classid 5
1) "classid"
2) "3"
127.0.0.1:6379> brpop classid 5
1) "classid"
2) "2"
127.0.0.1:6379> brpop classid 5
1) "classid"
2) "1"
127.0.0.1:6379> brpop classid 5
(nil)
(5.09s)
127.0.0.1:6379> 

在这里插入图片描述

rpoplpush命令

原子性地返回并移除存储在 source 的列表的最后一个元素(列表尾部元素), 并把该元素放入存储在 destination 的列表的第一个元素位置(列表头部)

127.0.0.1:6379> rpush  classid 1 2 3 4
(integer) 4
127.0.0.1:6379> rpush word a b c d
(integer) 4
127.0.0.1:6379> lrange  classid 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
127.0.0.1:6379> lrange word 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
127.0.0.1:6379> rpoplpush classid word
"4"
127.0.0.1:6379> lrange  classid 0 -1
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> lrange word 0 -1
1) "4"
2) "a"
3) "b"
4) "c"
5) "d"

在这里插入图片描述

brpoplpush命令

brpoplpush是rpoplpush的阻塞版,如果没有移除的数据就会阻塞到有数据或者timeout。

127.0.0.1:6379> brpoplpush classid word 5
"3"
127.0.0.1:6379> brpoplpush classid word 5
"2"
127.0.0.1:6379> brpoplpush classid word 5
"1"
127.0.0.1:6379> brpoplpush classid word 5
(nil)
(5.07s)
127.0.0.1:6379> 

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

硕风和炜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值