XADD în Redis & In-Memory Data Store

Adaugă un eveniment (o intrare cu câmpuri și valori) la finalul unui stream Redis și întoarce ID-ul lui.

Sintaxă comandă
XADD key [NOMKSTREAM] [MAXLEN | MINID [= | ~] threshold [LIMIT count]] <* | id> field value [field value ...]

Ce face XADD

Un stream Redis este un jurnal în care intrările doar se adaugă la final. Fiecare intrare are un ID unic și câteva perechi câmp–valoare, de exemplu client Ana total 120. XADD adaugă o intrare; cu *, Redis generează ID-ul din ora curentă în milisecunde, sub forma <milisecunde>-<secvență>.

Ca stream-ul să nu crească la nesfârșit, poți limita lungimea în aceeași comandă: MAXLEN ~ 10000 păstrează aproximativ ultimele 10 000 de intrări (varianta cu ~ e mai eficientă). NOMKSTREAM și MINID au apărut în Redis 6.2.0.

Parametri

Parametru Descriere
key Numele stream-ului.
* | id * = ID generat automat (recomandat).
MAXLEN [~] n Taie stream-ul la (aproximativ) n intrări.
MINID [~] id Șterge intrările cu ID mai mic decât cel dat (Redis 6.2+).
NOMKSTREAM Nu creează stream-ul dacă nu există (Redis 6.2+).
field value ... Datele intrării.

Ce returnează

ID-ul intrării adăugate, sau (nil) dacă s-a folosit NOMKSTREAM și stream-ul nu există.

Exemple

Exemplul 1: Evenimente de comandă într-un magazin online

Fiecare XADD întoarce ID-ul generat; XLEN arată câte intrări are stream-ul.

XADD comenzi * client Ana oras Iasi total 120
XADD comenzi * client Dan oras Cluj total 85
XLEN comenzi

Ieșire în redis-cli

127.0.0.1:6379> XADD comenzi * client Ana oras Iasi total 120
"1792915200000-0"
127.0.0.1:6379> XADD comenzi * client Dan oras Cluj total 85
"1792915260000-0"
127.0.0.1:6379> XLEN comenzi
(integer) 2

Exemplul 2: Stream cu lungime limitată

Păstrăm aproximativ ultimele 10 000 de citiri ale unui senzor.

XADD senzor:sera MAXLEN ~ 10000 * temperatura 21.5 umiditate 64
XADD inexistent NOMKSTREAM * test 1

Ieșire în redis-cli

127.0.0.1:6379> XADD senzor:sera MAXLEN ~ 10000 * temperatura 21.5 umiditate 64
"1792915380000-0"
127.0.0.1:6379> XADD inexistent NOMKSTREAM * test 1
(nil)

Greșeli frecvente

  • Fără MAXLEN sau MINID (ori un XTRIM periodic), stream-ul crește până umple memoria.
  • ID-urile date manual trebuie să fie mereu mai mari decât ultimul ID; altfel primești eroarea „The ID specified in XADD is equal or smaller than the target stream top item”.
  • Câmpurile și valorile sunt string-uri; pentru obiecte complexe, salvează JSON într-un câmp.

Comenzi înrudite

  • XREAD: Citește intrări noi din unul sau mai multe stream-uri, după un ID dat, opțional așteptând (BLOCK) până apar date.
  • XRANGE / XREVRANGE: Citește intrările unui stream dintre două ID-uri, în ordine crescătoare (XRANGE) sau descrescătoare (XREVRANGE).
  • XGROUP CREATE: Creează un grup de consumatori pe un stream, astfel încât mai mulți workeri să-și împartă mesajele.
  • PUBLISH: Trimite un mesaj pe un canal Pub/Sub tuturor clienților abonați în acel moment.
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: XADD

Ai o nelămurire despre utilizarea comenzii XADD sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.