Bird
Raised Fist0
Redisquery~5 mins

XADD for adding entries in Redis - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the Redis command XADD do?

XADD adds a new entry to a Redis stream. It appends data with a unique ID to the stream.

Click to reveal answer
beginner
What is the purpose of the * symbol in XADD mystream *?

The * tells Redis to auto-generate a unique ID for the new stream entry based on the current time.

Click to reveal answer
beginner
How do you specify the fields and values when using XADD?

After the stream name and ID, you list pairs of field names and their values, like field1 value1 field2 value2.

Click to reveal answer
intermediate
What happens if you use XADD mystream 12345-0 field1 value1 and the ID already exists?

Redis will return an error because stream entry IDs must be unique and cannot be reused.

Click to reveal answer
intermediate
How can you limit the length of a Redis stream when adding entries with XADD?

You can use the MAXLEN option to trim the stream to a certain length, for example: XADD mystream MAXLEN 1000 * field value.

Click to reveal answer
What does the XADD command do in Redis?
AAdds a new entry to a stream
BDeletes a stream
CReads entries from a stream
DCreates a new database
In XADD mystream *, what does the asterisk * mean?
AAuto-generate an entry ID
BDelete all entries
CAdd multiple entries
DUse a fixed ID
Which of these is a valid way to add fields with XADD?
AXADD mystream * field1 field2 value1 value2
BXADD mystream * value1 field1 value2 field2
CXADD mystream *
DXADD mystream * field1 value1 field2 value2
What happens if you try to add an entry with an existing ID using XADD?
AEntry is overwritten
BRedis returns an error
CEntry is ignored
DStream is deleted
How do you limit the length of a stream when adding entries?
AUse <code>TRIM</code> command separately
BUse <code>LIMIT</code> option
CUse <code>MAXLEN</code> option
DUse <code>DELETE</code> command
Explain how to add a new entry to a Redis stream using XADD.
Think about the order of arguments and how Redis generates IDs.
You got /3 concepts.
    Describe how to keep a Redis stream from growing too large when adding entries.
    Consider how to limit stream size during XADD.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the Redis command XADD do?
      easy
      A. Adds a new entry to a Redis stream with a unique ID
      B. Deletes an entry from a Redis stream
      C. Reads entries from a Redis stream
      D. Creates a new Redis database

      Solution

      1. Step 1: Understand the purpose of XADD

        XADD is used to add new entries to a Redis stream, each with a unique ID generated by Redis or specified by the user.
      2. Step 2: Compare with other commands

        Deleting entries is done by XDEL, reading by XRANGE or XREAD, and creating databases is unrelated to XADD.
      3. Final Answer:

        Adds a new entry to a Redis stream with a unique ID -> Option A
      4. Quick Check:

        XADD adds entries = A [OK]
      Hint: XADD always adds entries to streams, not deletes or reads [OK]
      Common Mistakes:
      • Confusing XADD with XDEL or XRANGE
      • Thinking XADD creates databases
      • Assuming XADD reads data instead of adding
      2. Which of the following is the correct syntax to add an entry with fields name and age to a Redis stream mystream using XADD?
      easy
      A. XADD mystream name John age 30 *
      B. XADD mystream name=John age=30 *
      C. XADD mystream * name John age 30
      D. XADD mystream * (name John) (age 30)

      Solution

      1. Step 1: Recall XADD syntax

        The correct syntax is: XADD stream_name * field1 value1 field2 value2 ... The asterisk (*) tells Redis to generate the ID automatically.
      2. Step 2: Check each option

        XADD mystream * name John age 30 matches the syntax exactly. Options A, C, and D have incorrect order or formatting.
      3. Final Answer:

        XADD mystream * name John age 30 -> Option C
      4. Quick Check:

        XADD syntax = XADD stream * fields [OK]
      Hint: Use * right after stream name to auto-generate ID [OK]
      Common Mistakes:
      • Placing * after fields instead of immediately after stream name
      • Using equal signs (=) in field-value pairs
      • Adding parentheses around fields
      3. Given the Redis command: XADD mystream MAXLEN 2 * temperature 22 humidity 60 executed three times in a row, how many entries will mystream contain afterwards?
      medium
      A. 2 entries
      B. 0 entries
      C. 1 entry
      D. 3 entries

      Solution

      1. Step 1: Understand MAXLEN usage

        The MAXLEN 2 option limits the stream length to 2 entries by trimming older entries when new ones are added.
      2. Step 2: Apply the command three times

        After the first two adds, the stream has 2 entries. The third add triggers trimming, keeping only the latest 2 entries.
      3. Final Answer:

        2 entries -> Option A
      4. Quick Check:

        MAXLEN 2 limits stream to 2 entries [OK]
      Hint: MAXLEN limits entries; stream never exceeds that number [OK]
      Common Mistakes:
      • Assuming all 3 entries remain without trimming
      • Confusing MAXLEN with deleting all entries
      • Thinking MAXLEN sets minimum length
      4. What is wrong with this command? XADD mystream MAXLEN 5 name John age
      medium
      A. Stream name cannot be 'mystream'
      B. MAXLEN must be after the fields
      C. XADD does not support MAXLEN option
      D. Missing value for field 'age'

      Solution

      1. Step 1: Check field-value pairs

        Fields and values must come in pairs. Here, 'age' has no value following it.
      2. Step 2: Verify MAXLEN position and support

        MAXLEN is correctly placed after stream name and before fields. XADD supports MAXLEN.
      3. Final Answer:

        Missing value for field 'age' -> Option D
      4. Quick Check:

        Fields need values; 'age' missing one [OK]
      Hint: Every field must have a value; check pairs carefully [OK]
      Common Mistakes:
      • Forgetting to provide value for last field
      • Misplacing MAXLEN option
      • Thinking stream name is invalid
      5. You want to add multiple entries to a Redis stream sensor_data but keep only the latest 100 entries to save memory. Which command correctly adds a new entry with fields temp and humidity and enforces this limit?
      hard
      A. XADD sensor_data * MAXLEN 100 temp 25 humidity 40
      B. XADD sensor_data MAXLEN 100 * temp 25 humidity 40
      C. XADD sensor_data MAXLEN ~ 100 * temp 25 humidity 40
      D. XADD sensor_data * temp 25 humidity 40 MAXLEN 100

      Solution

      1. Step 1: Understand MAXLEN usage and placement

        MAXLEN must come immediately after the stream name, optionally with ~ for approximate trimming. The * must come after MAXLEN to auto-generate ID.
      2. Step 2: Analyze options

        XADD sensor_data MAXLEN 100 * temp 25 humidity 40 correctly places MAXLEN 100 after stream name and before *, then fields. XADD sensor_data MAXLEN ~ 100 * temp 25 humidity 40 uses ~ (approximate) which is optional but not required. Options B and D have wrong order.
      3. Final Answer:

        XADD sensor_data MAXLEN 100 * temp 25 humidity 40 -> Option B
      4. Quick Check:

        MAXLEN 100 before * enforces limit [OK]
      Hint: Put MAXLEN right after stream name, then * for ID [OK]
      Common Mistakes:
      • Placing MAXLEN after * or fields
      • Using ~ when exact trimming is needed
      • Adding MAXLEN at the end of command
      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