📖 Scenario: You are managing a Redis database for a small online bookstore. You want to keep track of the unique genres of books currently available in the store using a Redis set.
🎯 Goal: Build a Redis set called book_genres that stores genres using SADD to add genres and SREM to remove genres when they are no longer available.
📋 What You'll Learn
Create a Redis set named book_genres with initial genres.
Add a configuration variable for a genre to remove.
Use SADD commands to add genres to the set.
Use SREM command to remove a specific genre from the set.
💡 Why This Matters
🌍 Real World
Managing unique collections like book genres, user tags, or product categories efficiently in Redis.
💼 Career
Understanding Redis set commands like SADD and SREM is essential for backend developers working with caching, session management, or real-time data.
Progress0 / 4 steps
1
Create the initial Redis set with genres
Use the SADD command to create a Redis set called book_genres and add these exact genres: "Fiction", "Science", "History".
Redis
Hint
Remember, SADD adds one or more members to a set. Use the exact set name book_genres and genres.
2
Set the genre to remove
Create a Redis key called genre_to_remove and set it to the string "Science".
Redis
Hint
Use the SET command to create a key genre_to_remove with the value Science.
3
Add more genres to the set
Use the SADD command to add these genres to the book_genres set: "Biography" and "Fantasy".
Redis
Hint
Use SADD again with the same set name and the new genres.
4
Remove the genre from the set
Use the SREM command to remove Science from the book_genres set.
Redis
Hint
Use SREM with the set name and the genre value to remove it from the set.
Practice
(1/5)
1. What does the Redis command SADD myset member1 do?
easy
A. Adds 'member1' to the set 'myset' if it is not already present.
B. Removes 'member1' from the set 'myset'.
C. Returns all members of the set 'myset'.
D. Deletes the set 'myset' entirely.
Solution
Step 1: Understand the SADD command
SADD adds one or more unique members to a Redis set.
Step 2: Apply to the example
Using SADD with 'myset' and 'member1' adds 'member1' if not already in 'myset'.
Final Answer:
Adds 'member1' to the set 'myset' if it is not already present. -> Option A
Quick Check:
SADD adds unique members [OK]
Hint: SADD adds unique items; SREM removes them [OK]
Common Mistakes:
Confusing SADD with SREM
Thinking SADD deletes sets
Assuming SADD returns all members
2. Which of the following is the correct syntax to remove 'member2' from a Redis set named 'myset'?
easy
A. REMOVE myset member2
B. SADD myset member2
C. SREM myset member2
D. DEL myset member2
Solution
Step 1: Identify the command to remove members
SREM is the Redis command used to remove members from a set.
Step 2: Check syntax correctness
The correct syntax is SREM followed by the set name and the member to remove.
Final Answer:
SREM myset member2 -> Option C
Quick Check:
SREM removes members correctly [OK]
Hint: Use SREM to remove members, not DEL or REMOVE [OK]
Common Mistakes:
Using SADD instead of SREM to remove
Using DEL which deletes keys, not members
Using non-existent REMOVE command
3. Given the following Redis commands executed in order: SADD fruits apple banana orange SREM fruits banana What will the command SMEMBERS fruits return?
medium
A. apple, orange
B. banana, orange
C. apple, banana, orange
D. apple, banana
Solution
Step 1: Add members to the set 'fruits'
SADD adds 'apple', 'banana', and 'orange' to the set 'fruits'.
Step 2: Remove 'banana' from the set
SREM removes 'banana' from 'fruits', leaving 'apple' and 'orange'.
Step 3: Retrieve members with SMEMBERS
SMEMBERS returns all current members: 'apple' and 'orange'.
Final Answer:
apple, orange -> Option A
Quick Check:
Removed banana, so only apple and orange remain [OK]
Hint: SREM removes members; SMEMBERS shows current set [OK]
Common Mistakes:
Assuming removed members still appear
Confusing SREM with DEL
Expecting order in SMEMBERS output
4. You run the command SREM myset memberX but get no error and the member still appears in SMEMBERS myset. What is the most likely reason?
medium
A. SREM command syntax is incorrect.
B. Redis server is down.
C. 'myset' is not a set but a string key.
D. 'memberX' was never in 'myset' to begin with.
Solution
Step 1: Understand SREM behavior when member absent
SREM does not error if the member is not in the set; it simply does nothing.
Step 2: Check if member exists in the set
If 'memberX' still appears in SMEMBERS output, it means it was never removed or was never absent.
Step 3: Consider other options
Syntax errors cause errors; wrong key type causes errors; server down causes no response.
Final Answer:
'memberX' was never in 'myset' to begin with. -> Option D
Quick Check:
SREM silently ignores missing members [OK]
Hint: SREM ignores missing members without error [OK]
Common Mistakes:
Expecting error if member not present
Confusing key type errors with SREM behavior
Assuming server down causes silent no-op
5. You want to maintain a Redis set 'online_users' that tracks currently logged-in users. Which sequence of commands correctly updates the set when user 'alice' logs in and then logs out?
hard
A. SREM online_users alice SADD online_users alice
B. SADD online_users alice SREM online_users alice
C. DEL online_users alice SADD online_users alice
D. SADD online_users alice DEL online_users alice
Solution
Step 1: Add user on login
Use SADD to add 'alice' to 'online_users' when she logs in.
Step 2: Remove user on logout
Use SREM to remove 'alice' from 'online_users' when she logs out.
Step 3: Evaluate other options
DEL deletes the entire set, which is not desired for single user updates.
Final Answer:
SADD online_users alice SREM online_users alice -> Option B
Quick Check:
Add with SADD, remove with SREM for membership [OK]
Hint: Add with SADD, remove with SREM; avoid DEL for single members [OK]
Common Mistakes:
Using DEL which deletes whole set
Removing before adding user
Confusing SADD and SREM order
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.