Redis-välimuisti ja viestinvälitys (Pub/Sub, Streams) · Oppitunti

Kuluttajaryhmälogiikan toteuttaminen

Oppikaa luomaan ryhmiä, lukemaan viestejä `XREADGROUP`-komennolla ja kuittaamaan käsittely `XACK`-komennolla.

Oppitunti 2/412 vaihetta

Kuluttajaryhmälogiikan toteuttaminen on ilmainen Redis-välimuisti ja viestinvälitys (Pub/Sub, Streams)-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Redis-välimuisti ja viestinvälitys (Pub/Sub, Streams)-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Redis-välimuisti ja viestinvälitys (Pub/Sub, Streams)-kurssilla on yhteensä 4 oppituntia.

Tervetuloa kuluttajaryhmien pariin!

Edellisessä oppitunnissa opimme, mitä Redis Streams tarkoittaa. Nyt perehdymme kuluttajaryhmiin! Ne ovat tehokas ominaisuus, jonka avulla useat asiakkaat voivat käsitellä streamin viestejä yhteistyössä.

Kuvitelkaa joukko työntekijöitä käsittelemässä tehtäviä yhdestä tehtävälistasta. Jokainen työntekijä saa omat tehtävänsä, ja jos yksi epäonnistuu, muut voivat ottaa odottavat tehtävät käsiteltäväkseen. Tämän kuluttajaryhmät mahdollistavat!

Ryhmän määrittäminen

Ennen kuin kuluttajat voivat liittyä, streamille on luotava kuluttajaryhmä. Tämä tehdään komennolla XGROUP CREATE.

Komento kertoo Redisille: "Hei, luo tälle streamille uusi ryhmä." Lisäksi määritätte tunnisteen, joka on yleensä 0 tai $, jos lukeminen halutaan aloittaa streamin alusta tai lopusta.

Luokaa ensimmäinen ryhmänne!

Luodaan streamille mystream ryhmä nimeltä mygroup. $ tarkoittaa "aloita lukeminen uusimmasta merkinnästä". MKSTREAM-valitsin on ratkaisevan tärkeä: se luo streamin, jos sitä ei vielä ole!

Kokeilkaa:

XGROUP CREATE mystream mygroup $ MKSTREAM

Lukeminen komennolla `XREADGROUP`

Kun ryhmä on luotu, kuluttajat voivat alkaa lukea viestejä komennolla XREADGROUP. Tämä komento on suunniteltu erityisesti kuluttajaryhmiä varten.

Se varmistaa, että jokainen viesti toimitetaan vain yhdelle ryhmän kuluttajalle. Jos kuluttaja ei kuittaa viestiä, se jää odottavaksi ja voidaan ottaa myöhemmin käsiteltäväksi.

Komennon `XREADGROUP` tulkinta

Komennolla XREADGROUP on useita tärkeitä parametreja:

  • GROUP <groupname> <consumername>: Määrittää, mikä ryhmä ja kuluttaja lukevat.
  • COUNT <N>: Valinnainen. Rajoittaa luettavien viestien määrää.
  • BLOCK <milliseconds>: Valinnainen. Estää asiakkaan toiminnan, jos viestejä ei ole saatavilla.
  • STREAMS <streamname> <ID>: Stream, josta luetaan, sekä tunniste. Käyttäkää tunnistetta >, jos haluatte saada uudet viestit, joita ei ole vielä toimitettu kenellekään muulle ryhmän kuluttajalle.

Luetaan muutama viesti!

Lisätään ensin muutama viesti streamiin mystream:

XADD mystream * event start task:1
XADD mystream * event process task:1

Kuluttaja lukee uudet viestit

Pyydetään nyt kuluttajaa nimeltä consumer-1 lukemaan streamia mystream ryhmästä mygroup. Tunniste > tarkoittaa "uudet, lukemattomat viestit".

XREADGROUP GROUP mygroup consumer-1 STREAMS mystream >

Viestien käsittelyn vahvistaminen

Kun kuluttaja on käsitellyt viestin onnistuneesti, sen kuittaaminen on erittäin tärkeää. Tämä ilmoittaa Redisille, että viesti on käsitelty ja voidaan poistaa kuluttajan Pending Entries List -listalta (PEL).

Kuittaus estää saman viestin toimittamisen uudelleen toiselle kuluttajalle, jos nykyinen kuluttaja kaatuu tai siirtyy offline-tilaan ennen tehtävän valmistumista.

`XACK`-komennon käyttö

Viestien kuittaamiseen käytetään komentoa XACK. Sen syntaksi on yksinkertainen:

XACK <streamname> <groupname> <ID> [ID ...]

Annatte streamin nimen, kuluttajaryhmän nimen sekä yhden tai useamman onnistuneesti käsitellyn viestin tunnisteen.

Harjoitellaan `XACK`-komentoa

Oletetaan, että saitte edellisessä luvussa viestitunnisteet 1678881234567-0 ja 1678881234568-0. Kuittaisitte ne näin (korvatkaa tunnisteet omilla tunnisteillanne):

XACK mystream mygroup 1678881234567-0 1678881234568-0

Testatkaa tietonne

Olette oppineet luomaan ryhmiä, lukemaan viestejä ja kuittaamaan niitä. Mikä seuraavista Redis-kuluttajaryhmiä koskevista väitteistä on TOSI?

Kertaus: kuluttajaryhmälogiikka

Hienoa työtä! Olette hallinneet Redis-kuluttajaryhmälogiikan toteuttamisen perusteet:

  • Käytimme komentoa XGROUP CREATE uuden ryhmän määrittämiseen streamille.
  • Opitte lukemaan viestejä yhteistyössä kuluttajana komennolla XREADGROUP.
  • Näimme, miten tärkeä XACK on käsiteltyjen viestien kuittaamisessa ja Pending Entries List -listan (PEL) hallinnassa.

Seuraavaksi tutustumme tarkemmin odottavien viestien ja kuluttajien epäonnistumisten vankempaan käsittelyyn!

Aloita maksutta

Opi Redis-välimuisti ja viestinvälitys (Pub/Sub, Streams) tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”Kuluttajaryhmälogiikan toteuttaminen” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Redis-välimuisti ja viestinvälitys (Pub/Sub, Streams)-oppimispolun 3 oppituntia, myös oppitunnin “Kuluttajaryhmälogiikan toteuttaminen”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Redis-välimuisti ja viestinvälitys (Pub/Sub, Streams)-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Kuluttajaryhmälogiikan toteuttaminen”?

Oppikaa luomaan ryhmiä, lukemaan viestejä `XREADGROUP`-komennolla ja kuittaamaan käsittely `XACK`-komennolla. Harjoittelet Redis-välimuisti ja viestinvälitys (Pub/Sub, Streams)-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Redis-välimuisti ja viestinvälitys (Pub/Sub, Streams)-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Redis-välimuisti ja viestinvälitys (Pub/Sub, Streams)-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”Kuluttajaryhmälogiikan toteuttaminen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Redis-välimuisti ja viestinvälitys (Pub/Sub, Streams)-oppitunnilla?

Kyllä. Jokainen Redis-välimuisti ja viestinvälitys (Pub/Sub, Streams)-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Johdanto kuluttajaryhmiin
  2. Kuluttajaryhmälogiikan toteuttaminen
  3. Odottavien viestien ja virheiden käsittely
  4. Kuluttajaryhmien viiveen seuranta
← Takaisin: Redis-välimuisti ja viestinvälitys (Pub/Sub, Streams)