Redis SUNIONSTORE Command Explained

In Redis, the SUNIONSTORE command does the same thing that SUNION does, except that it stores the result in a key. More specifically, it takes the members of the set resulting from the union of all of the given sets, and stores them in the specified key.

Syntax

The syntax goes like this:

SUNIONSTORE destination key [key ...]

Where destination is the key to store the result. We can pass one or more keys to the command.

Example

Suppose we create the following sets:

SADD cats Fluffy Scratch Meow
SADD dogs Wag Bark Fluffy

We can use SUNION to return the union of those two sets:

SUNIONSTORE animals cats dogs

Result:

(integer) 5

The command returns an integer reply with the number of members that were added to the set.

Our result indicates that five members were added to a set called animals.

We can verify the result by checking the contents of the newly created animals set:

SMEMBERS animals

Result:

1) "Bark"
2) "Scratch"
3) "Fluffy"
4) "Meow"
5) "Wag"

As expected, the set consists of five members.

Note that duplicate values are only included once. This makes sense, because sets can only contain unique values, and the result of SUNIONSTORE is a set. In our example, Fluffy appears in both the cats and dogs sets, but it only appears once in the animals set.

When the Destination Key Already Exists

If the destination key already exists, it’s overwritten:

SUNIONSTORE animals cats

Result:

(integer) 3

In this example, I specified the same destination key (animals) that we created in the previous example. That key was overwritten when I ran the code.

Here’s what the animals set contains now:

SMEMBERS animals

Result:

1) "Meow"
2) "Scratch"
3) "Fluffy"

Now the values from the dogs set are no longer in the animals set. That is because we only passed the cats set for the SUNIONSTORE operation, and the animals set was overwritten with the new result.

Wrong Argument Type

Passing a key that doesn’t contain a set results in an error:

SUNIONSTORE animals cats fruit

Result:

(error) WRONGTYPE Operation against a key holding the wrong kind of value

Wrong Argument Count

Calling SUNIONSTORE with the wrong number of arguments results in an error:

SUNIONSTORE cats

Result:

(error) ERR wrong number of arguments for 'sunionstore' command