Redis:列表LPUSH、LPUSHX、RPUSH、RPUSHX、LPOP、RPOP命令介绍

本文介绍了Redis中列表的基本操作,包括LPUSH、LPUSHX、RPUSH、RPUSHX用于向列表头部或尾部添加元素;LPOP、RPOP用于移除并获取列表头部或尾部的元素。这些命令的时间复杂度均为O(1),适用于高性能的数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LPUSH

LPUSH key value [value …]
可用版本: >= 1.0.0
时间复杂度: O(1)

将一个或多个值value插入到列表key的表头,并且各个值value按从左到右的顺序依次插入。

演示

如果key不存在,一个空列表key会被创建并执行LPUSH操作。对空列表key执行命令LPUSH key a b c,列表的值将是c b a,等同于执行LPUSH key aLPUSH key bLPUSH key c三个命令。执行LPUSH命令后,会返回列表的长度。
在这里插入图片描述
key 存在但不是列表类型时,返回一个错误。

在这里插入图片描述
Redis 2.4版本以前的LPUSH命令,都只接受单个value值。

LPUSHX

LPUSHX key value
可用版本: >= 2.2.0
时间复杂度: O(1)

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

演示

和LPUSH命令不一样,当key不存在时, LPUSHX命令什么也不做。
在这里插入图片描述
key存在但不是列表类型时, LPUSHX命令会报错。
在这里插入图片描述

LPUSHX命令执行之后,会返回列表的长度。
在这里插入图片描述

RPUSH

RPUSH key value [value …]
可用版本: >= 1.0.0
时间复杂度: O(1)

将一个或多个值value插入到列表key的表尾,并且各个值value按从左到右的顺序依次插入。

演示

如果key不存在,一个空列表key会被创建并执行RPUSH操作。对一个空列表key执行RPUSH key a b c ,列表的值将为 a b c ,等同于执行命令RPUSH key aRPUSH key bRPUSH key c。执行RPUSH命令后,会返回表的长度。
在这里插入图片描述
在这里插入图片描述
key存在但不是列表类型时,命令会返回一个错误。
在这里插入图片描述

RPUSHX

RPUSHX key value
可用版本: >= 2.2.0
时间复杂度: O(1)

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

演示

和RPUSH命令不一样,当key不存在时, RPUSHX命令什么也不做。
在这里插入图片描述
key存在但不是列表类型时, RPUSHX命令会报错。
在这里插入图片描述

RPUSHX命令执行之后,会返回列表的长度。
在这里插入图片描述

LPOP

LPOP key
可用版本: >= 1.0.0
时间复杂度: O(1)

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

演示

key不存在时,LPOP命令会返回(nil)
在这里插入图片描述
LPOP命令会返回列表的表头元素。
在这里插入图片描述
key存在并且不是列表类型时,LPOP命令会报错。
在这里插入图片描述

RPOP

RPOP key

可用版本: >= 1.0.0
时间复杂度: O(1)

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

演示

key不存在时,RPOP命令会返回(nil)
在这里插入图片描述
RPOP命令会返回列表的表尾元素。
在这里插入图片描述
key存在并且不是列表类型时,RPOP命令会报错。
在这里插入图片描述
Redis中列表的LPUSH、LPUSHX、RPUSH、RPUSHX、LPOP、RPOP命令就介绍到这里。

写博客是博主记录自己的学习过程,如果有错误,请指正,谢谢!

### Redis 列表操作命令详解 #### LPUSHRPUSH `LPUSH` 和 `RPUSH` 是用于向 Redis 列表中插入元素的命令。 - **LPUSH** 将一个或多个值插入到列表头部(左侧)。如果键不存在,则创建一个新的列表并将该值作为第一个元素[^2]。 - **RPUSH** 将一个或多个值插入到列表尾部(右侧)。同样,如果键不存在,则创建新的列表并添加值。 示例代码如下: ```bash LPUSH mylist "value1" RPUSH mylist "value2" LRANGE mylist 0 -1 # 返回 ["value1", "value2"] ``` #### LPOPRPOP `LPOP` 和 `RPOP` 用于移除并返回列表中的元素。 - **LPOP** 移除并返回列表的第一个元素(最左边的元素)。 - **RPOP** 移除并返回列表的最后一个元素(最右边的元素)。 当列表为空时,这两个命令会立即返回错误或空值。 示例代码如下: ```bash LPOP mylist # 返回 "value1" RPOP mylist # 返回 "value2" ``` #### BLPOP 和 BRPOP `BLPOP` 和 `BRPOP` 是阻塞版本的弹出命令。它们的行为类似于 `LPOP` 和 `RPOP`,但在列表为空时不会立即返回错误,而是等待直到有新数据被加入列表或者达到指定的超时时间为止[^1]。 - **BLPOP** 阻塞地从列表头(左端)获取元素。 - **BRPOP** 阻塞地从列表尾(右端)获取元素。 这些命令支持多键参数以及可选的超时设置。如果没有可用的数据,在超时时间内如果有新数据到来,则立即处理;否则按超时退出。 示例代码如下: ```bash BLPOP mylist 10 # 等待最多10秒,若有数据则返回 BRPOP mylist 10 # 同上逻辑应用于右端 ``` #### 主要区别总结 | 命令 | 插入位置 | 是否阻塞 | |---------|----------------|--------------| | LPUSH | 左侧 | 不阻塞 | | RPUSH | 右侧 | 不阻塞 | | LPOP | 左侧 | 不阻塞 | | RPOP | 右侧 | 不阻塞 | | BLPOP | 左侧 | 支持阻塞 | | BRPOP | 右侧 | 支持阻塞 | 以上即为各命令的主要功能及其差异说明。 --- ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ITKaven

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

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

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

打赏作者

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

抵扣说明:

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

余额充值