📖 Scenario: You are managing a Redis list that stores the names of fruits in a shopping list. Sometimes, you need to remove specific fruits from this list.
🎯 Goal: Learn how to use the Redis LREM command to remove specific elements from a list.
📋 What You'll Learn
Create a Redis list called shopping_list with exact fruits
Set a variable fruit_to_remove with the fruit name to remove
Use the LREM command to remove the specified fruit from the list
Verify the final list contains the correct elements after removal
💡 Why This Matters
🌍 Real World
Managing shopping lists, task queues, or any ordered data where specific items need to be removed efficiently.
💼 Career
Understanding Redis list operations like LREM is essential for backend developers and database administrators working with caching and real-time data.
Progress0 / 4 steps
1
Create the Redis list shopping_list with fruits
Create a Redis list called shopping_list and add these fruits in order: apple, banana, apple, orange, banana.
Redis
Hint
Use RPUSH to add multiple items to the list in one command.
2
Set the variable fruit_to_remove to banana
Set a Redis string variable called fruit_to_remove with the exact value banana.
Redis
Hint
Use the SET command to create a string variable.
3
Use LREM to remove all occurrences of banana from shopping_list
Use the LREM command to remove all occurrences of banana from the shopping_list. Use count as 0 to remove all matching elements.
Redis
Hint
LREM key 0 value removes all occurrences of value from the list key.
4
Check the final shopping_list contents
Use the LRANGE command to get all elements from shopping_list to verify that all banana entries are removed.
Redis
Hint
LRANGE key 0 -1 returns all elements in the list.
Practice
(1/5)
1. What does the Redis command LREM mylist 2 "apple" do?
easy
A. Removes up to 2 occurrences of "apple" from the head of the list.
B. Removes all occurrences of "apple" from the list.
C. Removes 2 elements from the tail of the list regardless of value.
D. Removes the first 2 elements of the list.
Solution
Step 1: Understand the LREM command parameters
LREM takes a key, a count, and a value. The count 2 means remove up to 2 matching elements.
Step 2: Interpret the count sign and value
Positive count removes from head to tail. So it removes up to 2 "apple" elements starting from the front.
Final Answer:
Removes up to 2 occurrences of "apple" from the head of the list. -> Option A
Quick Check:
LREM with positive count removes from head [OK]
Hint: Positive count removes from head; negative from tail [OK]
Common Mistakes:
Thinking count removes elements regardless of value
Confusing positive and negative count directions
Assuming count removes all matches always
2. Which of the following is the correct syntax to remove exactly 3 occurrences of "banana" from the tail of a Redis list named fruits?
easy
A. LREM fruits 3 "banana"
B. LREM fruits -3 "banana"
C. LREM fruits 0 "banana"
D. LREM fruits "banana" 3
Solution
Step 1: Recall LREM syntax
The syntax is LREM key count value. Negative count removes from tail.
Step 2: Identify correct count for tail removal
To remove 3 occurrences from tail, count must be -3.
Final Answer:
LREM fruits -3 "banana" -> Option B
Quick Check:
Negative count removes from tail [OK]
Hint: Use negative count to remove from tail [OK]
Common Mistakes:
Using positive count to remove from tail
Swapping value and count positions
Using zero count to remove specific elements
3. Given a Redis list colors with elements ["red", "blue", "red", "green", "red"], what will be the list after executing LREM colors 2 "red"?
medium
A. ["blue", "red", "green", "red"]
B. ["red", "blue", "green"]
C. ["blue", "green", "red"]
D. ["red", "blue", "red", "green"]
Solution
Step 1: Identify elements and count
List is ["red", "blue", "red", "green", "red"]. LREM with count 2 removes up to 2 "red" from head.
Step 2: Remove first 2 "red" from head
First "red" at index 0 removed, second "red" at index 2 removed. Remaining elements: ["blue", "green", "red"]
Final Answer:
["blue", "green", "red"] -> Option C
Quick Check:
Removed first 2 "red" from head [OK]
Hint: Count 2 removes first 2 matches from head [OK]
Common Mistakes:
Removing all "red" elements instead of 2
Removing from tail instead of head
Confusing list order after removal
4. You run LREM mylist -1 "orange" but it does not remove any element. What could be the reason?
medium
A. The list mylist does not contain "orange".
B. Negative count cannot be used with LREM.
C. The command syntax is incorrect; value must come before count.
D. LREM only removes elements from the head, not the tail.
Solution
Step 1: Check command syntax and usage
LREM syntax is correct and negative count removes from tail.
Step 2: Consider why no removal happened
If no elements removed, likely the value "orange" is not in the list.
Final Answer:
The list mylist does not contain "orange". -> Option A
Quick Check:
No matching element means no removal [OK]
Hint: No matching value means LREM removes nothing [OK]
Common Mistakes:
Thinking negative count is invalid
Assuming syntax order is different
Believing LREM only removes from head
5. You have a Redis list tasks with elements ["email", "call", "email", "meeting", "email", "call"]. You want to remove all occurrences of "email" except the last one. Which sequence of commands achieves this?
hard
A. LREM tasks -2 "email"
B. LREM tasks 0 "email"
C. LREM tasks -5 "email"
D. LREM tasks 2 "email"
Solution
Step 1: Count total "email" elements
There are 3 "email" elements at positions 0, 2, 4.
Step 2: Removal strategy
Positive count removes matches from head-to-tail. Count 2 removes the first two "email"s, leaving the last one.
Step 3: Simulate execution
Remove index 0, list shifts to ["call", "email", "meeting", "email", "call"], then remove next match at new index 1 (orig 2). Result: ["call", "meeting", "email", "call"].
Final Answer:
LREM tasks 2 "email" -> Option D
Quick Check:
Positive count removes first matches from head [OK]
Hint: Positive count removes early matches from head [OK]
Common Mistakes:
Using negative count removes later matches from tail
Using zero count removes all occurrences
Using large negative count removes all if exceeds occurrences
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.