Bird
Raised Fist0
Redisquery~10 mins

SUNIONSTORE for storing results in Redis - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - SUNIONSTORE for storing results
Start with multiple sets
↓
SUNIONSTORE command runs
↓
Calculate union of all sets
↓
Store union result in destination set
↓
Return number of elements in destination set
SUNIONSTORE takes multiple sets, finds their union, stores it in a new set, and returns the count of elements stored.
Execution Sample
Redis
SADD set1 a b c
SADD set2 b c d
SUNIONSTORE dest set1 set2
SMEMBERS dest
This code creates two sets, unions them into 'dest', and retrieves all members of 'dest'.
Execution Table
StepCommandActionResultNotes
1SADD set1 a b cAdd elements a,b,c to set13set1 = {a,b,c}
2SADD set2 b c dAdd elements b,c,d to set23set2 = {b,c,d}
3SUNIONSTORE dest set1 set2Union set1 and set2, store in dest4dest = {a,b,c,d}
4SMEMBERS destRetrieve all members of dest[a,b,c,d]Shows union result
5EndNo more commandsExecution complete
💡 All commands executed; union stored in 'dest' with 4 elements.
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3Final
set1empty{a,b,c}{a,b,c}{a,b,c}{a,b,c}
set2emptyempty{b,c,d}{b,c,d}{b,c,d}
destemptyemptyempty{a,b,c,d}{a,b,c,d}
Key Moments - 2 Insights
Why does SUNIONSTORE overwrite the destination set instead of adding to it?
SUNIONSTORE replaces the destination set with the union result each time, as shown in step 3 of the execution_table where 'dest' is set to the union of 'set1' and 'set2'. It does not append but overwrites.
What happens if one of the source sets does not exist?
If a source set does not exist, SUNIONSTORE treats it as an empty set. The union will be the union of existing sets only, so the destination will contain elements from existing sets as shown in the concept_flow.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, how many elements does 'dest' contain after SUNIONSTORE runs?
A4
B3
C2
D5
💡 Hint
Check row 3 in execution_table where SUNIONSTORE stores the union with count 4.
At which step is the 'dest' set created and populated?
AStep 1
BStep 3
CStep 2
DStep 4
💡 Hint
Look at the 'Action' column in execution_table; union and store happen at step 3.
If 'set2' was empty, what would be the size of 'dest' after SUNIONSTORE?
A0
B4
C3
DDepends on 'set1'
💡 Hint
Refer to variable_tracker and concept_flow: union with empty set equals the other set.
Concept Snapshot
SUNIONSTORE destination key sourcekey [sourcekey ...]
- Computes union of all source sets
- Stores result in destination key (overwrites existing)
- Returns number of elements in destination
- If source set missing, treated as empty
- Use SMEMBERS to view stored union
Full Transcript
SUNIONSTORE command in Redis takes multiple sets, finds their union, and stores the result in a destination set. It overwrites any existing data in the destination. The command returns the number of elements stored. For example, if set1 has {a,b,c} and set2 has {b,c,d}, SUNIONSTORE dest set1 set2 will store {a,b,c,d} in dest. If a source set does not exist, it is treated as empty. You can retrieve the union with SMEMBERS dest. This visual trace showed each step: adding elements to sets, running SUNIONSTORE, and checking the result. Key points include understanding that the destination is overwritten and missing sets count as empty.

Practice

(1/5)
1. What does the Redis command SUNIONSTORE destination key1 key2 do?
easy
A. It merges the sets stored at key1 and key2 and stores the result in destination.
B. It deletes the sets at key1 and key2 and creates a new set at destination.
C. It returns the union of sets at key1 and key2 without storing it.
D. It copies the set at key1 to destination without merging.

Solution

  1. Step 1: Understand SUNIONSTORE purpose

    The command merges multiple sets into one combined set.
  2. Step 2: Identify storage behavior

    The result is stored in the specified destination key, overwriting if it exists.
  3. Final Answer:

    It merges the sets stored at key1 and key2 and stores the result in destination. -> Option A
  4. Quick Check:

    SUNIONSTORE merges and stores = C [OK]
Hint: SUNIONSTORE merges sets and saves result in destination [OK]
Common Mistakes:
  • Confusing SUNIONSTORE with SUNION (which does not store)
  • Thinking it deletes original sets
  • Assuming it copies only one set
2. Which of the following is the correct syntax to store the union of sets setA and setB into resultSet using Redis?
easy
A. SUNIONSTORE setA setB resultSet
B. SUNIONSTORE resultSet setA setB
C. SUNION resultSet setA setB
D. SUNIONSTORE setA resultSet setB

Solution

  1. Step 1: Recall SUNIONSTORE syntax

    The correct syntax is SUNIONSTORE destination key1 key2 ....
  2. Step 2: Match keys to syntax

    Here, resultSet is destination, followed by sets setA and setB.
  3. Final Answer:

    SUNIONSTORE resultSet setA setB -> Option B
  4. Quick Check:

    Destination first, then sets = A [OK]
Hint: Destination key comes first in SUNIONSTORE command [OK]
Common Mistakes:
  • Placing destination key last
  • Using SUNION instead of SUNIONSTORE for storing
  • Mixing order of keys
3. You have three sets:
setX = {1, 2, 3}
setY = {3, 4, 5}
setZ = {5, 6}
You want to create a new set combined that contains the union of all three sets. Which command correctly does this and stores the result in combined?
easy
A. SUNIONSTORE combined setX setY setZ
B. SUNIONSTORE combined setX setY
C. SUNION combined setX setY setZ
D. SUNIONSTORE setX setY setZ combined

Solution

  1. Step 1: Recall SUNIONSTORE usage for multiple sets

    SUNIONSTORE can take multiple keys after the destination key.
  2. Step 2: Verify correct order and keys

    Destination is combined, followed by setX, setY, and setZ.
  3. Final Answer:

    SUNIONSTORE combined setX setY setZ -> Option A
  4. Quick Check:

    Destination first, then all sets = B [OK]
Hint: List all sets after destination in SUNIONSTORE [OK]
Common Mistakes:
  • Using SUNION instead of SUNIONSTORE to store
  • Placing destination key last
  • Omitting one or more sets
4. Given the following Redis sets:
SADD set1 a b c
SADD set2 b c d
What will be the members of resultSet after executing SUNIONSTORE resultSet set1 set2?
medium
A. ["a", "d"]
B. ["a", "b", "c"]
C. ["a", "b", "c", "d"]
D. ["b", "c", "d"]

Solution

  1. Step 1: Identify members of each set

    set1 has {a, b, c}, set2 has {b, c, d}.
  2. Step 2: Compute union of both sets

    The union is {a, b, c, d} combining all unique members.
  3. Final Answer:

    ["a", "b", "c", "d"] -> Option C
  4. Quick Check:

    Union of set1 and set2 = ["a", "b", "c", "d"] [OK]
Hint: Union combines all unique elements from both sets [OK]
Common Mistakes:
  • Forgetting to include all unique elements
  • Confusing union with intersection
  • Assuming order matters in sets
5. You run the command SUNIONSTORE result set1 set2 but get an error. What is the most likely cause?
medium
A. SUNIONSTORE does not accept more than two sets.
B. You forgot to specify the destination key.
C. The sets set1 and set2 do not exist.
D. The key result already exists as a string, not a set.

Solution

  1. Step 1: Understand data type requirements

    SUNIONSTORE requires the destination key to be a set or not exist.
  2. Step 2: Identify error cause

    If result exists as a string or other type, Redis throws a type error.
  3. Final Answer:

    The key result already exists as a string, not a set. -> Option D
  4. Quick Check:

    Destination key type mismatch causes error [OK]
Hint: Destination key must be a set or not exist [OK]
Common Mistakes:
  • Assuming missing keys cause errors (they don't)
  • Thinking SUNIONSTORE limits number of sets
  • Ignoring key data types
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard