Bird
Raised Fist0
Redisquery~5 mins

XREAD for reading entries in Redis - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the Redis command XREAD do?
The XREAD command reads new entries from one or more Redis streams. It returns stream entries starting from a given ID.
Click to reveal answer
beginner
How do you specify which streams to read from using XREAD?
You provide the XREAD command with the keyword STREAMS, followed by the stream names and the IDs from which to start reading.
Click to reveal answer
intermediate
What does the ID $ mean when used with XREAD?
The ID $ means to read only new entries added after the command is called, ignoring existing entries.
Click to reveal answer
intermediate
What happens if you use XREAD BLOCK 0?
The command will block (wait) indefinitely until a new entry arrives in the stream, then return it.
Click to reveal answer
advanced
How can you read from multiple streams at once using XREAD?
You list multiple stream names after STREAMS and provide one ID per stream. XREAD returns entries from all those streams starting from the given IDs.
Click to reveal answer
What does XREAD STREAMS mystream 0 do?
ABlocks forever without returning any entries.
BReads only new entries added after the command runs.
CDeletes all entries from 'mystream'.
DReads all entries from 'mystream' starting from the very first entry.
Which ID should you use with XREAD to get only new entries added after the command runs?
A0
B$
C-
D*
What does the BLOCK option do in XREAD?
ADeletes entries after reading.
BLimits the number of entries returned.
CWaits for new entries if none are available.
DReads entries in reverse order.
How do you read from two streams named 's1' and 's2' starting from their latest entries?
AXREAD STREAMS s1 s2 $ $
BXREAD STREAMS s1 s2 0 0
CXREAD STREAMS s1 s2 * *
DXREAD STREAMS s1 s2 - -
What is the output format of XREAD?
AA list of entries with stream name, entry ID, and fields.
BA boolean indicating success.
CA count of entries read.
DA list of stream names only.
Explain how to use XREAD to read new entries from a Redis stream named 'orders'.
Think about reading only new data and waiting for it.
You got /4 concepts.
    Describe the difference between using ID '0' and '$' with XREAD.
    Consider what entries exist before and after the command.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the Redis command XREAD primarily do?
      easy
      A. Deletes entries from a stream
      B. Lists all keys in the Redis database
      C. Creates a new stream with initial entries
      D. Reads new entries from one or more streams starting at a given ID

      Solution

      1. Step 1: Understand the purpose of XREAD

        XREAD is designed to read entries from Redis streams, starting at a specified ID.
      2. Step 2: Compare with other commands

        Deleting entries is done by XDEL, creating streams is implicit when adding entries, and listing keys is done by KEYS or SCAN.
      3. Final Answer:

        Reads new entries from one or more streams starting at a given ID -> Option D
      4. Quick Check:

        XREAD reads stream entries = B [OK]
      Hint: XREAD always reads entries from streams starting at an ID [OK]
      Common Mistakes:
      • Confusing XREAD with commands that delete or create streams
      • Thinking XREAD lists keys instead of reading stream data
      2. Which of the following is the correct syntax to read from a stream named mystream starting from the ID 0-0 using XREAD?
      easy
      A. XREAD STREAMS mystream 0-0
      B. XREAD mystream STREAMS 0-0
      C. XREAD STREAMS 0-0 mystream
      D. XREAD 0-0 STREAMS mystream

      Solution

      1. Step 1: Recall XREAD syntax

        The correct syntax is: XREAD STREAMS key [key ...] ID [ID ...]. The keyword STREAMS comes before the stream names and IDs.
      2. Step 2: Match the order for one stream

        For one stream, it is: XREAD STREAMS mystream 0-0.
      3. Final Answer:

        XREAD STREAMS mystream 0-0 -> Option A
      4. Quick Check:

        STREAMS keyword before stream and ID = D [OK]
      Hint: Remember: XREAD STREAMS stream_name start_id [OK]
      Common Mistakes:
      • Placing STREAMS after the stream name
      • Swapping stream name and ID order
      • Omitting the STREAMS keyword
      3. Given the following Redis stream entries in mystream:
      1) 1609459200000-0: {"name": "Alice"}
      2) 1609459201000-0: {"name": "Bob"}
      3) 1609459202000-0: {"name": "Carol"}
      What will be the output of the command XREAD COUNT 2 STREAMS mystream 1609459200000-0?
      medium
      A. [["mystream", [["1609459201000-0", {"name": "Bob"}], ["1609459202000-0", {"name": "Carol"}]]]]
      B. [["mystream", [["1609459200000-0", {"name": "Alice"}], ["1609459201000-0", {"name": "Bob"}]]]]
      C. [["mystream", [["1609459202000-0", {"name": "Carol"}]]]]
      D. Error: Invalid COUNT usage

      Solution

      1. Step 1: Understand COUNT and starting ID

        Starting at 1609459200000-0 means reading from the first entry. COUNT 2 limits to 2 entries.
      2. Step 2: Select the first two entries

        The first two entries are Alice and Bob with IDs 1609459200000-0 and 1609459201000-0.
      3. Final Answer:

        [["mystream", [["1609459200000-0", {"name": "Alice"}], ["1609459201000-0", {"name": "Bob"}]]]] -> Option B
      4. Quick Check:

        COUNT limits entries read = A [OK]
      Hint: COUNT limits number of entries returned [OK]
      Common Mistakes:
      • Starting from next ID instead of given ID
      • Ignoring COUNT and returning all entries
      • Misunderstanding the output format
      4. You run the command XREAD STREAMS mystream 0-0 COUNT 2 but get an error. Which of the following is the most likely cause?
      medium
      A. The COUNT argument is placed after the STREAMS keyword
      B. The stream name is missing
      C. The ID format is incorrect
      D. XREAD does not support COUNT option

      Solution

      1. Step 1: Recall XREAD syntax

        Modifiers like COUNT must precede the STREAMS keyword: XREAD [COUNT count] STREAMS key id ...
      2. Step 2: Analyze the given command

        COUNT 2 is placed after STREAMS mystream 0-0, which is invalid and causes a syntax error.
      3. Step 3: Rule out other options

        Stream name present, ID 0-0 valid, COUNT supported.
      4. Final Answer:

        The COUNT argument is placed after the STREAMS keyword -> Option A
      5. Quick Check:

        COUNT after STREAMS = error A [OK]
      Hint: COUNT and BLOCK must precede STREAMS [OK]
      Common Mistakes:
      • Placing COUNT after STREAMS keyword
      • Omitting stream name
      • Assuming COUNT is unsupported
      5. You want to read new entries from two streams, streamA and streamB, starting from IDs 0-0 and 1609459200000-0 respectively, and wait up to 5000 milliseconds if no new entries arrive. Which command correctly achieves this?
      hard
      A. XREAD STREAMS streamA streamB 0-0 1609459200000-0 COUNT 10 BLOCK 5000
      B. XREAD STREAMS streamA streamB 0-0 1609459200000-0 BLOCK 5000 COUNT 10
      C. XREAD COUNT 10 BLOCK 5000 STREAMS streamA streamB 0-0 1609459200000-0
      D. XREAD BLOCK 5000 STREAMS streamA streamB 0-0 1609459200000-0 COUNT 10

      Solution

      1. Step 1: Recall correct XREAD order

        XREAD [COUNT count] [BLOCK ms] STREAMS key [key ...] id [id ...]. Modifiers precede STREAMS.
      2. Step 2: Match given streams and IDs

        streamA with 0-0, streamB with 1609459200000-0.
      3. Step 3: Confirm options placement

        COUNT 10 BLOCK 5000 before STREAMS in XREAD COUNT 10 BLOCK 5000 STREAMS streamA streamB 0-0 1609459200000-0 is correct.
      4. Final Answer:

        XREAD COUNT 10 BLOCK 5000 STREAMS streamA streamB 0-0 1609459200000-0 -> Option C
      5. Quick Check:

        COUNT/BLOCK before STREAMS = C [OK]
      Hint: COUNT and BLOCK before STREAMS keyword [OK]
      Common Mistakes:
      • Placing COUNT or BLOCK after STREAMS keyword
      • Mixing order of streams and IDs
      • Omitting BLOCK for waiting
      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