# SUNIONSTORE

> Store the union of sets in a destination key.

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

```
SUNIONSTORE destination key [key ...]
```

- Group: Set
- Complexity: O(N) where N is the total number of members in all given sets
- HotKV Cloud: all plans
- On-Premise: no license needed

`SUNIONSTORE` computes the same union as [SUNION](https://docs.hotkv.com/commands/sunion/index.md) and
stores it as a set at `destination`, replacing whatever `destination` held
before (of any type, and without its time to live). If the result is empty,
`destination` is deleted. The source sets are read and the result written as
one atomic step, and `destination` can also be one of the source keys.

## Return value

| Case | RESP2 | RESP3 |
| --- | --- | --- |
| Success | Integer: the number of members in the stored set | Same |

`SUNIONSTORE` replies with a `WRONGTYPE` error if any source key holds a value
that is not a set. `destination` is not changed in that case.

## Examples

```
127.0.0.1:6379> SADD a "x" "y"
(integer) 2
127.0.0.1:6379> SADD b "y" "z"
(integer) 2
127.0.0.1:6379> SUNIONSTORE all a b
(integer) 3
127.0.0.1:6379> SCARD all
(integer) 3
```

## Compatibility

Same as Redis 7.4 and Valkey 8.

## See also

[SUNION](https://docs.hotkv.com/commands/sunion/index.md), [SINTERSTORE](https://docs.hotkv.com/commands/sinterstore/index.md), [SDIFFSTORE](https://docs.hotkv.com/commands/sdiffstore/index.md),
[ZUNIONSTORE](https://docs.hotkv.com/commands/zunionstore/index.md)