Redis 的 LPUSHX 命令用于将值 value 插入到列表 KEY 的表头,当且仅当 KEY 存在并且是一个 列表。当 KEY 不存在时, 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 命令用于将值 value 插入到列表 KEY 的表头,当且仅当 KEY 存在并且是一个列表。Redis LPUSHX 命令语法:
192.168.98.70:6379> LPUSHX KEY value