XADD

Introduction and Use Case(s)

The XADD command in Redis is used to add a new entry to a stream. Streams are an abstract data type that allows for the handling of time-series data in a log-like structure. Typical use cases include event logging, message queuing, and real-time analytics.

Syntax

  1. XADD key ID field value [field value ...]

Parameter Explanations

  • key: The name of the stream.
  • ID: The ID of the entry. Use * to auto-generate an ID based on the current timestamp.
  • field value: Pairs of fields and values representing the entry’s data. Multiple field-value pairs can be specified.

Return Values

Returns the ID of the added entry as a string.

Example Outputs

  • 1617844908230-0: Indicates the entry was successfully added with this specific ID.

Code Examples

  1. dragonfly> XADD mystream * sensor-id 1234 temperature 19.8
  2. "1651844970123-0"
  3. dragonfly> XADD mystream 1651844970123-1 sensor-id 1235 temperature 20.1
  4. "1651844970123-1"
  5. dragonfly> XRANGE mystream - +
  6. 1) 1) "1651844970123-0"
  7. 2) 1) "sensor-id"
  8. 2) "1234"
  9. 3) "temperature"
  10. 4) "19.8"
  11. 2) 1) "1651844970123-1"
  12. 2) 1) "sensor-id"
  13. 2) "1235"
  14. 3) "temperature"
  15. 4) "20.1"

Best Practices

  • Use * for the ID to ensure uniqueness and avoid conflicts.
  • Maintain consistent field naming conventions within streams for easier processing and querying.

Common Mistakes

  • Not specifying the * or a valid ID format can lead to errors.
  • Forgetting to pair fields and values correctly will result in syntax errors.

FAQs

What happens if I use an existing ID?

Redis will not overwrite existing entries; each ID must be unique in the stream.

Can I add multiple entries at once?

No, XADD adds a single entry per command invocation. Use batching techniques on the client-side if necessary.