📖 Scenario: You are managing a Redis database that stores groups of users as sets. You want to see all the members of a specific group to understand who belongs to it.
🎯 Goal: Learn how to create a Redis set with specific members and use the SMEMBERS command to list all members of that set.
📋 What You'll Learn
Create a Redis set called group:developers with exact members: alice, bob, and carol
Add a helper variable to store the set key name group_key with value group:developers
Use the SMEMBERS command with the group_key variable to get all members of the set
Store the result of SMEMBERS in a variable called members
💡 Why This Matters
🌍 Real World
Redis sets are often used to manage groups of items like user roles, tags, or unique collections. Knowing how to list all members helps in displaying or processing these groups.
💼 Career
Many backend developers and database administrators use Redis sets for fast membership checks and grouping. Understanding SMEMBERS is essential for querying these sets.
Progress0 / 4 steps
1
Create the Redis set with members
Create a Redis set called group:developers and add the members alice, bob, and carol using the SADD command.
Redis
Hint
Use SADD followed by the set name and the members to add.
2
Set a variable for the set key
Create a variable called group_key and set it to the string group:developers.
Redis
Hint
Use the SET command to create a key-value pair for the set name.
3
Use SMEMBERS to get all members
Use the SMEMBERS command with the variable group_key to get all members of the set.
Redis
Hint
Use SMEMBERS followed by the set name to list all members.
4
Store the SMEMBERS result in a variable
Store the result of SMEMBERS group:developers in a variable called members.
Redis
Hint
In Redis CLI, you cannot directly store command results in variables, but in scripts or clients you can assign the result to a variable named members.
Practice
(1/5)
1. What does the Redis command SMEMBERS myset do?
easy
A. Lists all members of the set stored at key 'myset'.
B. Deletes the set stored at key 'myset'.
C. Adds a new member to the set 'myset'.
D. Returns the number of members in the set 'myset'.
Solution
Step 1: Understand the SMEMBERS command
The SMEMBERS command in Redis returns all the members of a set stored at a given key.
Step 2: Apply to the key 'myset'
Using SMEMBERS on 'myset' will list all its members without modifying the set.
Final Answer:
Lists all members of the set stored at key 'myset'. -> Option A
Quick Check:
SMEMBERS lists all set members [OK]
Hint: SMEMBERS always lists all members of a set key [OK]
Common Mistakes:
Confusing SMEMBERS with commands that modify sets
Thinking SMEMBERS returns count instead of members
Assuming SMEMBERS deletes or adds members
2. Which of the following is the correct syntax to list all members of a Redis set named colors?
easy
A. SMEMBERS colors
B. SADD colors
C. GET colors
D. SMEMBERS(colors)
Solution
Step 1: Recall Redis command syntax
Redis commands use the format COMMAND key without parentheses.
Step 2: Identify the correct command for listing set members
SMEMBERS followed by the key name lists all members of the set.
Final Answer:
SMEMBERS colors -> Option A
Quick Check:
Correct syntax is SMEMBERS key [OK]
Hint: Redis commands have no parentheses, just command and key [OK]
Common Mistakes:
Using parentheses like a function call
Confusing SMEMBERS with SADD or GET
Omitting the key name after the command
3. Given the Redis set fruits contains {"apple", "banana", "cherry"}, what will SMEMBERS fruits return?
medium
A. 3
B. ["apple", "banana", "cherry", "date"]
C. ["apple", "banana", "cherry"]
D. Error: key does not exist
Solution
Step 1: Understand the set contents
The set 'fruits' contains exactly "apple", "banana", and "cherry".
Step 2: Apply SMEMBERS command
SMEMBERS returns all members of the set as a list, unordered but containing all unique items.
Final Answer:
["apple", "banana", "cherry"] -> Option C
Quick Check:
SMEMBERS returns all set members [OK]
Hint: SMEMBERS returns all members exactly as stored [OK]
Common Mistakes:
Expecting SMEMBERS to return count instead of members
Assuming SMEMBERS adds or removes items
Thinking SMEMBERS returns an error if set exists
4. You run SMEMBERS myset but get an error: "WRONGTYPE Operation against a key holding the wrong kind of value". What is the likely cause?
medium
A. The key 'myset' does not exist.
B. Redis server is down.
C. SMEMBERS command is misspelled.
D. 'myset' is not a set but another data type like string or list.
Solution
Step 1: Understand the error message
The error means the key exists but holds a type other than a set.
Step 2: Identify cause of error
SMEMBERS only works on sets; if 'myset' is a string or list, this error occurs.
Final Answer:
'myset' is not a set but another data type like string or list. -> Option D
Quick Check:
Wrong type error means key is not a set [OK]
Hint: Wrong type error means key is not a set [OK]
Common Mistakes:
Assuming key does not exist causes this error
Thinking command spelling causes this error
Ignoring data type of the key
5. You have a Redis set users_online with members {"alice", "bob", "carol"}. You want to list all users online and add "dave" only if he is not already present. Which sequence of commands achieves this correctly?
hard
A. SMEMBERS users_online; SADD users_online dave
B. SADD users_online dave; SMEMBERS users_online
C. GET users_online; SADD users_online dave
D. SMEMBERS users_online; DEL users_online; SADD users_online dave
Solution
Step 1: Add 'dave' to the set if not present
SADD adds 'dave' only if he is not already a member, so run SADD first.
Step 2: List all members after adding
Run SMEMBERS after SADD to get the updated list including 'dave'.
Final Answer:
SADD users_online dave; SMEMBERS users_online -> Option B
Quick Check:
Add then list to see updated set [OK]
Hint: Add first with SADD, then list with SMEMBERS [OK]
Common Mistakes:
Listing before adding misses new member
Using GET instead of SMEMBERS for sets
Deleting set before adding loses data
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.