Redis RPUSHX命令

Redis RPUSHX命令教程

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

Redis RPUSHX命令详解

语法

192.168.98.70:6379> RPUSHX KEY value

参数

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

返回值

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

时间复杂度

O(1)

可用版本

>= 2.2.0

案例

列表不存在

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

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

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

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

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

列表存在

列表存在时,插入正确值

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

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

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

插入多个元素

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

192.168.98.70:6379> RPUSH haicoder Redis (integer) 1 192.168.98.70:6379> RPUSHX haicoder Mongo Mysql (error) ERR wrong number of arguments for 'rpushx' command 192.168.98.70:6379> DEL haicoder (integer) 1

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

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

Redis RPUSHX命令教程

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

192.168.98.70:6379> RPUSHX KEY value