Redis LPUSHX命令

Redis LPUSHX命令教程

Redis 的 LPUSHX 命令用于将值 value 插入到列表 KEY 的表头,当且仅当 KEY 存在并且是一个 列表。当 KEY 不存在时, LPUSHX 命令什么也不做。

Redis LPUSHX命令详解

语法

192.168.98.70:6379> LPUSHX KEY value

参数

参数 描述
KEY 要添加元素的列表的键。
value 要添加的具体的元素。

返回值

执行 LPUSHX 命令后,列表的长度。

时间复杂度

O(1)

可用版本

>= 2.2.0

案例

列表不存在

列表不存在时,LPUSHX 命令什么都不做

192.168.98.70:6379> LLEN haicoder (integer) 0 192.168.98.70:6379> LPUSHX haicoder Redis (integer) 0 192.168.98.70:6379> LPUSHX haicoder Mongo (integer) 0 192.168.98.70:6379> LRANGE haicoder 0 -1 (empty list or set)

我们首先,使用 LLEN 命令,获取列表 haicoder 的长度,返回 0,即列表不存在。使用 LPUSHX 命令,向键为 haicoder 的列表的头部插入值 Redis,返回 0,即插入失败。

接着,使用 LPUSHX 命令,向键为 haicoder 的列表的头部插入值 Mongo,返回 0,即插入失败。

最后,我们使用 LRANGE 命令,获取键为 haicoder 的列表的所有元素,返回空列表,因为列表不存在,所以所有的插入都失败了。

列表存在

列表存在时,插入正确值

192.168.98.70:6379> LPUSH haicoder Redis (integer) 1 192.168.98.70:6379> LPUSHX haicoder Mongo (integer) 2 192.168.98.70:6379> LPUSHX haicoder Mysql (integer) 3 192.168.98.70:6379> LRANGE haicoder 0 -1 1) "Mysql" 2) "Mongo" 3) "Redis" 192.168.98.70:6379> DEL haicoder (integer) 1

首先,我们使用 LPUSH 命令,向键为 haicoder 的列表的头部插入值 Redis。使用 LPUSHX 命令,向键为 haicoder 的列表的头部插入值 Mongo,返回 2。

接着,我们使用 LPUSHX 命令,向键为 haicoder 的列表的头部插入值 Mysql,返回 3。最后,使用 LRANGE 命令,获取键为 haicoder 的列表的所有元素。

插入多个元素

LPUSHX 不支持一次插入多个元素

192.168.98.70:6379> LPUSH haicoder Redis (integer) 1 192.168.98.70:6379> LPUSHX haicoder Mongo Mysql (error) ERR wrong number of arguments for 'lpushx' command 192.168.98.70:6379> DEL haicoder (integer) 1

首先,我们使用 LPUSH 命令,向键为 haicoder 的列表中批量插入值 Redis。

接着,我们使用 LPUSHX 命令,向键为 haicoder 的列表中插入值 Mongo 和 Mysql,此时返回错误,说明 LPUSHX 命令不支持同时插入多个元素。

Redis LPUSHX命令总结

Redis 的 LPUSHX 命令用于将值 value 插入到列表 KEY 的表头,当且仅当 KEY 存在并且是一个列表。Redis LPUSHX 命令语法:

192.168.98.70:6379> LPUSHX KEY value