Upstash Documentation

ZUNIONSTORE

Store sorted set union.
2 min read

Use ZUNIONSTORE to compute the union of sorted sets and store it in another key.

Members present in several inputs are scored by the sum of their scores by default, or by MIN or MAX when AGGREGATE is given, with WEIGHTS scaling each input first. The destination is overwritten if it exists and deleted when the union is empty, and the reply is the number of members stored.

Merging per-day or per-source rankings into a combined one, weighting them as you go, is the typical use: the destination is an ordinary sorted set that can then be paged with ZRANGE.

Syntax#

Arguments#

ArgumentRequiredRepeatableDescription
<destination>YesNoRedis key used as destination.
<numkeys>YesNoNumber of key arguments that follow.
<key>YesYesRedis key targeted by the command.
WEIGHTS <weight>NoYesMultiplier applied to each input key's scores, in the order the keys were given.
(AGGREGATE SUM | MIN | MAX)NoNoUnder AGGREGATE, choose one form: SUM; MIN; MAX.

Important points#

  • numkeys must equal the number of key arguments that immediately follow it.

Response#

The reply reports the result of the operation. Error replies have the same shape in RESP2 and RESP3 and are surfaced as exceptions by the SDKs below.

ProtocolReply
RESP2Integer
RESP3Integer
Note

Client libraries often decode bulk strings, maps, sets, and numeric strings into language-native values. The table describes the Redis wire reply.

Examples#

TCP examples use the TLS REDIS_URL from the Upstash console. REST examples use UPSTASH_REDIS_REST_URL and UPSTASH_REDIS_REST_TOKEN.

Redis CLI
@upstash/redis
upstash_redis
ioredis
node-redis
redis-py
go-redis
jedis
redis-rs