前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis五大数据类型之List操作命令

Redis五大数据类型之List操作命令

作者头像
别团等shy哥发育
发布2023-02-25 16:14:03
4240
发布2023-02-25 16:14:03
举报
文章被收录于专栏:全栈开发那些事

Redis五大数据类型List操作命令

一、常用命令

1.1、BLPOP key1[key2] timeout

移出并获取列表的第一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止

1.2、BPROP key1[key2] timeout

移出并获取列表的最后一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止

1.3、BRPOPLPUSH source destination timeout

从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它;如果列表没有元素会阻塞列表知道等待超时或发现可弹出元素为止

1.4、LINDEX key index

通过索引获取列表中的元素

1.5、LINSERT key BEFORE|AFTER pivot value

在列表的元素前或者后插入元素

1.6、LLEN key

返回列表 key 的长度。

如果 key 不存在,则 key 被解释为一个空列表,返回 0 .

如果 key 不是列表类型,返回一个错误。

1.7、LPOP key

移除并返回列表 key 的头元素。

1.8、LPUSH key value1 [value2]

将一个或多个值 value 插入到列表 key 的表头 如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表头: 比如说,对空列表 mylist 执行命令 LPUSH mylist a b c ,列表的值将是 c b a ,这等同于原子性地执行 LPUSH mylist a 、 LPUSH mylist b 和 LPUSH mylist c 三个命令。 如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作。 当 key 存在但不是列表类型时,返回一个错误。

1.9、LPUSHX key value

将值 value 插入到列表 key 的表头,当且仅当 key 存在并且是一个列表。 和 LPUSH key value [value …] 命令相反,当 key 不存在时, LPUSHX 命令什么也不做。

1.10、LRANGE key start stop

返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定。

下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

1.11、LREM key count value

根据参数 count 的值,移除列表中与参数 value 相等的元素。

count 的值可以是以下几种: count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count 。 count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值。 count = 0 : 移除表中所有与 value 相等的值。

1.12、LSET key index value

将列表 key 下标为 index 的元素的值设置为 value 。

当 index 参数超出范围,或对一个空列表( key 不存在)进行 LSET 时,返回一个错误。

1.13、LTRIM key start stop

对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。

举个例子,执行命令 LTRIM list 0 2 ,表示只保留列表 list 的前三个元素,其余元素全部删除。 下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。 当 key 不是列表类型时,返回一个错误。

1.14、RPOP key

移除并返回列表 key 的尾元素

1.15、 RPOPLPUSH source destination

命令 RPOPLPUSH 在一个原子时间内,执行以下两个动作:

将列表 source 中的最后一个元素(尾元素)弹出,并返回给客户端。 将 source 弹出的元素插入到列表 destination ,作为 destination 列表的的头元素。

举个例子,你有两个列表 source 和 destination , source 列表有元素 a, b, c , destination 列表有元素 x, y, z ,执行 RPOPLPUSH source destination 之后, source 列表包含元素 a, b , destination 列表包含元素 c, x, y, z ,并且元素 c 会被返回给客户端。 如果 source 不存在,值 nil 被返回,并且不执行其他动作。 如果 source 和 destination 相同,则列表中的表尾元素被移动到表头,并返回该元素,可以把这种特殊情况视作列表的旋转(rotation)操作。

1.16、RPUSH key value1 [value2]

将一个或多个值 value 插入到列表 key 的表尾(最右边)。

如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表尾:比如对一个空列表 mylist 执行 RPUSH mylist a b c ,得出的结果列表为 a b c ,等同于执行命令 RPUSH mylist a 、 RPUSH mylist b 、 RPUSH mylist c 。 如果 key 不存在,一个空列表会被创建并执行 RPUSH 操作。 当 key 存在但不是列表类型时,返回一个错误。

1.17、RPUSHX key value

将值 value 插入到列表 key 的表尾,当且仅当 key 存在并且是一个列表。

和 RPUSH key value [value …] 命令相反,当 key 不存在时, RPUSHX 命令什么也不做。

二、实操

在这里插入图片描述
在这里插入图片描述

表头插几个值

代码语言:javascript
复制
lpush list01 1 2 3 4 5

查看

代码语言:javascript
复制
lrange list02 0 -1
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

从list01和list02的表头分别出几个值

代码语言:javascript
复制
lpop list01
lpop list02
在这里插入图片描述
在这里插入图片描述

从表尾出几个值

代码语言:javascript
复制
rpop list01
rpop list02
在这里插入图片描述
在这里插入图片描述

再查看list01和list02的值

这里你理解成lpop是从栈顶出,rpop是从栈底出就明白了(或者链表表头和表尾)

在这里插入图片描述
在这里插入图片描述

通过索引获取元素

代码语言:javascript
复制
lindex list01 3
lindex list01 2
lindex list02 2
在这里插入图片描述
在这里插入图片描述

获取key的长度

代码语言:javascript
复制
llen list01
llenlist02
在这里插入图片描述
在这里插入图片描述

从列表尾部插入

代码语言:javascript
复制
RPUSH list03 1 1 1 2 2 2 3 3 3 4 4 4 5 6 7

哎呀,卧槽,不小心关掉了ssh连接,实操记录没了,就先写到这里吧,博友们看上面的基础操作命令照着走就行,不难

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Redis五大数据类型List操作命令
  • 一、常用命令
    • 1.1、BLPOP key1[key2] timeout
      • 1.2、BPROP key1[key2] timeout
        • 1.3、BRPOPLPUSH source destination timeout
          • 1.4、LINDEX key index
            • 1.5、LINSERT key BEFORE|AFTER pivot value
              • 1.6、LLEN key
                • 1.7、LPOP key
                  • 1.8、LPUSH key value1 [value2]
                    • 1.9、LPUSHX key value
                      • 1.10、LRANGE key start stop
                        • 1.11、LREM key count value
                          • 1.12、LSET key index value
                            • 1.13、LTRIM key start stop
                              • 1.14、RPOP key
                                • 1.15、 RPOPLPUSH source destination
                                  • 1.16、RPUSH key value1 [value2]
                                    • 1.17、RPUSHX key value
                                    • 二、实操
                                    相关产品与服务
                                    云数据库 Redis
                                    腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
                                    领券
                                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档