Ce face XGROUP CREATE
Un grup de consumatori ține minte, pe server, până unde a citit grupul și ce mesaje au fost livrate fiecărui consumator. Mesajele din stream sunt împărțite între consumatorii grupului: fiecare mesaj ajunge la un singur consumator.
XGROUP CREATE primește ID-ul de la care grupul începe să citească: $ = doar mesajele noi, 0 = tot istoricul. MKSTREAM creează stream-ul gol dacă nu există încă. Pe același stream pot exista mai multe grupuri (de exemplu „facturare” și „livrare”), fiecare cu propria poziție.
Parametri
| Parametru | Descriere |
|---|---|
key |
Stream-ul. |
group |
Numele grupului. |
id | $ |
De unde citește grupul: $ doar intrări noi, 0 de la început. |
MKSTREAM |
Creează stream-ul dacă lipsește. |
DESTROY / DELCONSUMER |
Șterge grupul, respectiv un consumator din grup. |
Ce returnează
OK la creare; eroarea BUSYGROUP dacă grupul există deja.
Exemple
Exemplul 1: Două grupuri independente pe același stream
Facturarea procesează tot istoricul, livrarea doar comenzile noi. A doua creare a aceluiași grup dă eroare.
XGROUP CREATE comenzi facturare 0
XGROUP CREATE comenzi livrare $
XGROUP CREATE comenzi facturare 0
Ieșire în redis-cli
127.0.0.1:6379> XGROUP CREATE comenzi facturare 0
OK
127.0.0.1:6379> XGROUP CREATE comenzi livrare $
OK
127.0.0.1:6379> XGROUP CREATE comenzi facturare 0
(error) BUSYGROUP Consumer Group name already exists
Exemplul 2: Grup pe un stream care nu există încă
Fără MKSTREAM comanda ar da eroare, pentru că stream-ul plati nu există.
XGROUP CREATE plati procesare $ MKSTREAM
XLEN plati
Ieșire în redis-cli
127.0.0.1:6379> XGROUP CREATE plati procesare $ MKSTREAM
OK
127.0.0.1:6379> XLEN plati
(integer) 0
Greșeli frecvente
- La pornirea aplicației, tratează eroarea
BUSYGROUPca „grupul există deja”, nu ca o problemă. - Un grup creat cu
$nu vede mesajele scrise înainte de creare.
Comenzi înrudite
XREADGROUP: Citește mesaje dintr-un stream ca membru al unui grup de consumatori; fiecare mesaj ajunge la un singur consumator.XACK / XPENDING: XACK confirmă că un mesaj din grup a fost procesat; XPENDING arată mesajele livrate, dar încă neconfirmate.XADD: Adaugă un eveniment (o intrare cu câmpuri și valori) la finalul unui stream Redis și întoarce ID-ul lui.