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ă
MAXLENsauMINID(ori unXTRIMperiodic), 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.
Întrebări & Exemple de Cod:
XADDAi o nelămurire despre utilizarea comenzii
XADDsau 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.