# LPUSHX

> Insert elements at the head of a list, only if the list already exists.

URL: https://docs.hotkv.com/commands/lpushx/

```
LPUSHX key element [element ...]
```

- Group: List
- Complexity: O(1) for each element added
- HotKV Cloud: all plans
- On-Premise: no license needed

`LPUSHX` works like [LPUSH](https://docs.hotkv.com/commands/lpush/index.md), but only when `key` already
holds a list. If the key does not exist, nothing is created and nothing is
pushed.

## Return value

| Case | RESP2 | RESP3 |
| --- | --- | --- |
| List exists | Integer: the length of the list after the push | Same |
| Key does not exist | Integer `0` | Same |

`LPUSHX` replies with a `WRONGTYPE` error if `key` holds a value that is not a
list.

## Examples

```
127.0.0.1:6379> LPUSHX queue a
(integer) 0
127.0.0.1:6379> LPUSH queue a
(integer) 1
127.0.0.1:6379> LPUSHX queue b c
(integer) 3
127.0.0.1:6379> LRANGE queue 0 -1
1) "c"
2) "b"
3) "a"
```

## Compatibility

Same as Redis 7.4 and Valkey 8.

## See also

[LPUSH](https://docs.hotkv.com/commands/lpush/index.md), [RPUSHX](https://docs.hotkv.com/commands/rpushx/index.md), [LRANGE](https://docs.hotkv.com/commands/lrange/index.md)