Bird
Raised Fist0
Redisquery~5 mins

XTRIM for stream capping in Redis - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the Redis command XTRIM do?
The XTRIM command trims a Redis stream to keep its length under a specified maximum, effectively capping the stream size by removing older entries.
Click to reveal answer
beginner
How do you specify the maximum length of a stream when using XTRIM?
You use the MAXLEN option followed by the maximum number of entries you want to keep in the stream.
Click to reveal answer
intermediate
What is the difference between XTRIM MAXLEN and XTRIM MINID?
MAXLEN trims the stream to a maximum number of entries, while MINID trims entries older than a specific stream ID.
Click to reveal answer
intermediate
Why might you want to use the ~ (approximate) option with XTRIM MAXLEN?
Using ~ allows Redis to trim the stream approximately, which is faster because it doesn't guarantee an exact maximum length but improves performance.
Click to reveal answer
beginner
What happens if you run XTRIM mystream MAXLEN 1000 on a stream with 1500 entries?
Redis will remove the oldest 500 entries so that the stream contains only the most recent 1000 entries.
Click to reveal answer
What does the Redis command XTRIM mystream MAXLEN 500 do?
AKeeps only the latest 500 entries in the stream 'mystream'.
BDeletes the stream 'mystream'.
CAdds 500 new entries to the stream 'mystream'.
DReturns the length of the stream 'mystream'.
Which option makes XTRIM trim approximately for better performance?
A~
BMINID
CMAXLEN
DEXACT
What does XTRIM mystream MINID 1609459200000-0 do?
ADeletes the stream 'mystream'.
BKeeps entries with IDs greater than or equal to 1609459200000-0.
CAdds a new entry with ID 1609459200000-0.
DReturns the oldest entry in the stream.
If you want to keep exactly 1000 entries in a stream, which command is best?
AXLEN mystream 1000
BXTRIM mystream MINID 1000
CXADD mystream MAXLEN 1000
DXTRIM mystream MAXLEN 1000
What is the main purpose of using XTRIM on a Redis stream?
ATo read entries from the stream.
BTo add new entries to the stream.
CTo limit the stream size and save memory.
DTo rename the stream.
Explain how the XTRIM command helps manage Redis streams and why stream capping is important.
Think about why you wouldn't want a stream to grow forever.
You got /4 concepts.
    Describe the difference between using MAXLEN and MINID options with XTRIM.
    One trims by count, the other by entry age.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the Redis XTRIM command do when used with the MAXLEN option?
      easy
      A. It renames the stream to a new key.
      B. It adds new entries to the stream without removing any.
      C. It limits the number of entries in a stream by removing the oldest ones.
      D. It deletes the entire stream immediately.

      Solution

      1. Step 1: Understand the purpose of XTRIM with MAXLEN

        The XTRIM command with MAXLEN is used to keep the stream size limited by removing old entries.
      2. Step 2: Identify the effect on the stream

        It removes the oldest entries to keep the stream length within the specified maximum.
      3. Final Answer:

        It limits the number of entries in a stream by removing the oldest ones. -> Option C
      4. Quick Check:

        XTRIM + MAXLEN = Remove oldest entries [OK]
      Hint: XTRIM with MAXLEN trims oldest entries to cap stream size [OK]
      Common Mistakes:
      • Thinking XTRIM adds entries instead of removing
      • Confusing XTRIM with deleting the whole stream
      • Assuming XTRIM renames the stream
      2. Which of the following is the correct syntax to trim a Redis stream named mystream to keep at most 1000 entries approximately?
      easy
      A. XTRIM mystream MAXLEN ~1000
      B. XTRIM mystream MAXLEN=1000
      C. XTRIM mystream MAXLEN ~ 1000
      D. XTRIM mystream MAXLEN 1000

      Solution

      1. Step 1: Recall syntax for approximate trimming

        Approximate trimming uses the tilde (~) before the number in the XTRIM command.
      2. Step 2: Match correct syntax

        The correct syntax is XTRIM mystream MAXLEN ~1000 with spaces separating arguments.
      3. Final Answer:

        XTRIM mystream MAXLEN ~1000 -> Option A
      4. Quick Check:

        Approximate trim syntax = MAXLEN ~ number [OK]
      Hint: Use tilde (~) with MAXLEN for approximate trimming [OK]
      Common Mistakes:
      • Omitting the tilde (~) for approximate trimming
      • Using equals sign (=) which is invalid syntax
      • Not spacing arguments correctly
      3. Given the following commands executed sequentially:
      XADD mystream * field1 value1
      XADD mystream * field2 value2
      XADD mystream * field3 value3
      XTRIM mystream MAXLEN 2

      How many entries will mystream contain after these commands?
      medium
      A. 2 entries
      B. 3 entries
      C. 1 entry
      D. 0 entries

      Solution

      1. Step 1: Count entries added before trimming

        Three entries are added to mystream using XADD.
      2. Step 2: Apply XTRIM with MAXLEN 2

        The XTRIM command trims the stream to keep only the latest 2 entries, removing the oldest one.
      3. Final Answer:

        2 entries -> Option A
      4. Quick Check:

        3 added, trimmed to 2 = 2 entries [OK]
      Hint: XTRIM MAXLEN keeps newest entries, removes oldest [OK]
      Common Mistakes:
      • Assuming no trimming happens after XTRIM
      • Counting all added entries without trimming
      • Thinking XTRIM deletes all entries
      4. You run the command XTRIM mystream MAXLEN ~1000 but notice the stream still has over 2000 entries. What is the most likely reason?
      medium
      A. The command syntax is incorrect and was ignored.
      B. The approximate trim (~) allows the stream to exceed the limit temporarily.
      C. XTRIM only works on empty streams.
      D. The stream key name is case-sensitive and was misspelled.

      Solution

      1. Step 1: Understand approximate trimming behavior

        Using the tilde (~) means trimming is approximate and may allow the stream to temporarily exceed the limit.
      2. Step 2: Eliminate other causes

        Syntax is correct, XTRIM works on non-empty streams, and key name issues would cause errors, not approximate trimming behavior.
      3. Final Answer:

        The approximate trim (~) allows the stream to exceed the limit temporarily. -> Option B
      4. Quick Check:

        Approximate trim = possible temporary size excess [OK]
      Hint: Approximate trim (~) may exceed limit briefly [OK]
      Common Mistakes:
      • Assuming syntax error caused no trimming
      • Thinking XTRIM only works on empty streams
      • Ignoring approximate trimming behavior
      5. You want to keep a Redis stream events capped at 500 entries but want to improve trimming speed by allowing approximate trimming. Which command should you use?
      hard
      A. XTRIM events MAXLEN = 500
      B. XTRIM events MAXLEN 500
      C. XTRIM events MINLEN ~ 500
      D. XTRIM events MAXLEN ~500

      Solution

      1. Step 1: Identify approximate trimming syntax

        Approximate trimming uses the tilde (~) before the number with MAXLEN.
      2. Step 2: Choose correct command

        XTRIM events MAXLEN ~500 caps the stream at about 500 entries with faster trimming.
      3. Final Answer:

        XTRIM events MAXLEN ~500 -> Option D
      4. Quick Check:

        Approximate trim = MAXLEN ~ number [OK]
      Hint: Use MAXLEN ~ number for fast approximate trimming [OK]
      Common Mistakes:
      • Using MINLEN instead of MAXLEN
      • Using equals sign (=) which is invalid
      • Omitting the tilde (~) for approximate trimming
      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