Bird
Raised Fist0
Redisquery~15 mins

LTRIM for list capping in Redis - Mini Project: Build & Apply

Choose your learning style10 modes available
LTRIM for List Capping in Redis
📖 Scenario: You are managing a Redis list that stores recent user actions on a website. To keep the list from growing too large and using too much memory, you want to keep only the latest 5 actions.
🎯 Goal: Build a Redis command sequence that adds user actions to a list and then trims the list to keep only the latest 5 entries using LTRIM.
📋 What You'll Learn
Create a Redis list called user_actions.
Add 7 specific actions to the user_actions list using LPUSH.
Use LTRIM to keep only the latest 5 actions in the list.
Verify the list contains exactly the 5 most recent actions.
💡 Why This Matters
🌍 Real World
Websites and apps often track recent user actions or events in Redis lists to quickly access the latest data without storing too much history.
💼 Career
Knowing how to cap Redis lists is important for backend developers and DevOps engineers to manage memory and performance in real-time applications.
Progress0 / 4 steps
1
Create the Redis list and add 7 actions
Use the LPUSH command to add these exact actions to the list called user_actions in this order: "login", "view_page", "click_ad", "logout", "login", "purchase", "logout".
Redis
Hint

Use LPUSH with the list name user_actions and add all 7 actions in one command.

2
Set the maximum list size to 5
Create a variable called max_size and set it to 5 to represent the maximum number of actions to keep in the list.
Redis
Hint

Just assign the number 5 to a variable named max_size.

3
Trim the list to keep only the latest 5 actions
Use the LTRIM command on the user_actions list to keep only the elements from index 0 to max_size - 1.
Redis
Hint

Use LTRIM user_actions 0 4 because list indexes start at 0 and you want 5 items total.

4
Verify the list contains only the latest 5 actions
Use the LRANGE command on user_actions from index 0 to -1 to get all elements and confirm the list has exactly 5 actions.
Redis
Hint

Use LRANGE user_actions 0 -1 to get the full list contents.

Practice

(1/5)
1. What does the Redis command LTRIM mylist 0 9 do to the list mylist?
easy
A. Clears the entire list.
B. Removes the first 10 elements and keeps the rest.
C. Keeps only the last 10 elements of the list and removes the rest.
D. Keeps only the first 10 elements of the list and removes the rest.

Solution

  1. Step 1: Understand LTRIM parameters

    The command LTRIM mylist 0 9 keeps elements from index 0 to 9 inclusive.
  2. Step 2: Effect on list size

    This means only the first 10 elements remain; all others are removed.
  3. Final Answer:

    Keeps only the first 10 elements of the list and removes the rest. -> Option D
  4. Quick Check:

    LTRIM 0 9 keeps first 10 elements [OK]
Hint: LTRIM 0 9 means keep first 10 items only [OK]
Common Mistakes:
  • Confusing start and stop indexes
  • Thinking it removes first 10 instead of keeping them
  • Assuming it keeps last 10 elements
2. Which of the following is the correct syntax to keep only the last 5 elements of a Redis list named tasks using LTRIM?
easy
A. LTRIM tasks -5 -1
B. LTRIM tasks 0 4
C. LTRIM tasks 5 -1
D. LTRIM tasks -1 -5

Solution

  1. Step 1: Understand negative indexes in LTRIM

    Negative indexes count from the end: -1 is last element, -5 is fifth from last.
  2. Step 2: Select correct range for last 5 elements

    Using LTRIM tasks -5 -1 keeps elements from fifth last to last, i.e., last 5 elements.
  3. Final Answer:

    LTRIM tasks -5 -1 -> Option A
  4. Quick Check:

    Negative indexes keep last elements [OK]
Hint: Use negative indexes to keep last elements [OK]
Common Mistakes:
  • Using positive indexes to try to keep last elements
  • Reversing negative indexes order
  • Using invalid syntax with start > stop
3. Given a Redis list colors with elements ["red", "green", "blue", "yellow", "purple"], what will be the list content after executing LTRIM colors 1 3?
medium
A. ["green", "blue", "yellow"]
B. ["blue", "yellow", "purple"]
C. ["red", "green", "blue"]
D. ["yellow", "purple"]

Solution

  1. Step 1: Identify indexes to keep

    LTRIM colors 1 3 keeps elements from index 1 to 3 inclusive.
  2. Step 2: Extract elements at those indexes

    Indexes 1 to 3 are "green", "blue", "yellow".
  3. Final Answer:

    ["green", "blue", "yellow"] -> Option A
  4. Quick Check:

    LTRIM keeps specified index range [OK]
Hint: Indexes start at 0; keep elements between start and stop [OK]
Common Mistakes:
  • Including element at index 0 by mistake
  • Confusing index ranges
  • Assuming LTRIM removes elements inside range
4. You run LTRIM mylist 5 2 on a Redis list. What will happen?
medium
A. The command will return an error due to invalid range.
B. The list will be emptied because start index is greater than stop index.
C. The list will be trimmed to elements from index 5 to 2, keeping those elements.
D. The list will remain unchanged.

Solution

  1. Step 1: Understand LTRIM behavior with start > stop

    If start index is greater than stop index, Redis trims the list to empty.
  2. Step 2: Apply to given command

    Since 5 > 2, LTRIM mylist 5 2 empties the list.
  3. Final Answer:

    The list will be emptied because start index is greater than stop index. -> Option B
  4. Quick Check:

    LTRIM with start > stop empties list [OK]
Hint: Start index must be ≤ stop; else list empties [OK]
Common Mistakes:
  • Expecting an error instead of empty list
  • Thinking list remains unchanged
  • Assuming it keeps elements in reverse order
5. You want to keep only the most recent 20 messages in a Redis list chatlog. Which sequence of commands correctly caps the list size after adding a new message "Hello"?
hard
A. RPUSH chatlog "Hello"; LTRIM chatlog -20 0
B. RPUSH chatlog "Hello"; LTRIM chatlog 0 19
C. LPUSH chatlog "Hello"; LTRIM chatlog 0 19
D. LPUSH chatlog "Hello"; LTRIM chatlog -20 -1

Solution

  1. Step 1: Understand list direction and adding new messages

    Using LPUSH adds new messages to the start (index 0), so recent messages are at the front.
  2. Step 2: Use LTRIM to keep first 20 elements

    To keep the most recent 20 messages, trim to indexes 0 to 19, or equivalently LTRIM chatlog 0 19. Negative indexes also work but must match direction.
  3. Step 3: Match push and trim commands

    Since LPUSH adds to front, LTRIM chatlog 0 19 keeps first 20 recent messages. LPUSH chatlog "Hello"; LTRIM chatlog -20 -1 uses LPUSH and LTRIM chatlog -20 -1, which keeps last 20 elements, but since new messages are at front, last 20 are oldest. So LPUSH chatlog "Hello"; LTRIM chatlog -20 -1 is incorrect.
  4. Step 4: Correct option

    LPUSH chatlog "Hello"; LTRIM chatlog 0 19 uses LPUSH and LTRIM chatlog 0 19, which correctly keeps the 20 most recent messages at front.
  5. Final Answer:

    LPUSH chatlog "Hello"; LTRIM chatlog 0 19 -> Option C
  6. Quick Check:

    LPUSH + LTRIM 0 19 keeps recent 20 messages [OK]
Hint: Match push direction with LTRIM range to keep recent items [OK]
Common Mistakes:
  • Using RPUSH but trimming front indexes
  • Using negative indexes incorrectly with LPUSH
  • Trimming wrong range causing oldest messages to stay
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