Redis Stream - faʻatuatuaina ma faʻalauteleina o au faiga feʻau

Redis Stream - faʻatuatuaina ma faʻalauteleina o au faiga feʻau

Redis Stream o se faʻamatalaga faʻamatalaga fou na faʻalauiloaina i Redis ma le version 5.0
I le manatu, Redis Stream o se Lisi e mafai ona e faʻaopoopoina ai faʻamatalaga. O fa'amatalaga ta'itasi e iai lona fa'ailoga tulaga ese. Ona o le faaletonu, o le ID e otometi lava ona gaosia ma aofia ai se faailoga taimi. O le mea lea, e mafai ona e suʻeina faʻamaumauga o faʻamaumauga i le taimi, pe maua ni faʻamatalaga fou pe a oʻo mai i le vaitafe, e pei lava o le Unix "tail -f" poloaiga e faitau se faila ogalaau ma faʻamalo aʻo faʻatali mo faʻamatalaga fou. Manatua o le tele o tagata e mafai ona faʻalogo i se filo i le taimi e tasi, e pei lava o le tele o "tail -f" faiga e mafai ona faitau se faila i le taimi e tasi e aunoa ma le feteʻenaʻi o le tasi ma le isi.

Ina ia malamalama i faʻamanuiaga uma o le ituaiga faʻamatalaga fou, seʻi o tatou vaʻavaʻai vave i fausaga Redis ua leva ona i ai o loʻo faʻatusalia se vaega o galuega a Redis Stream.

Toe fo'i PUB/SUB

Redis Pub/Sub o se faiga fe'au faigofie ua uma ona fausia i totonu o lau faleoloa taua-taua. Ae ui i lea, o le faigofie e maua i se tau:

  • Afai e le manuia le tagata talaʻi mo se mafuaʻaga, ona leiloa uma lea o ana au fai saofaga
  • E tatau ona iloa e le tagata tala'i le tuatusi tonu o ana tagata fai saofaga
  • E mafai e se tagata fa'asalalau ona fa'atupuina le galuega pe a fa'asalalau fa'amaumauga nai lo le fa'agaioiina
  • O le fe'au e tapeina mai le pa'u a le tagata fa'asalalau i le taimi lava e uma ai le fa'asalalauga, tusa lava po o le a le aofa'i o le au fai saofaga na tu'uina atu i ai ma le vave na mafai ai ona latou fa'agasolo lenei fe'au.
  • O le a maua uma e le au fai saofaga le fe'au i le taimi e tasi. E tatau i le au fai saofaga ona malilie i latou lava i le faasologa o le faagasologa o le savali lava e tasi.
  • E leai se masini fa'apipi'i e fa'amaonia ai ua manuia le fa'agaioiina e le tagata fai sao se fe'au. Afai e maua e le tagata fai saofaga se feʻau ma paʻu i le taimi o gaioiga, o le a le iloa e le tagata talaʻi.

Lisi Redis

Redis List o se faʻamaumauga faʻamaumauga e lagolagoina le polokaina o tulafono faitau. E mafai ona e faaopoopo ma faitau savali mai le amataga po o le faaiuga o le lisi. Faʻavae i luga o lenei fausaga, e mafai ona e faia se faʻaputu lelei poʻo se faʻasologa mo lau faʻasalalauga tufatufaina, ma i le tele o tulaga o le a lava lea. Eseesega autu mai le Redis Pub/Sub:

  • O le fe'au e tu'uina atu i le tasi tagata o tausia. O le tagata muamua na poloka le faitau o le a mauaina faʻamatalaga muamua.
  • E tatau ia Clint ona amataina le faagaioiga faitau mo savali taitasi ia lava. E leai se mea e iloa e Lisi e uiga i tagata fa'atau.
  • E teuina fe'au se'ia faitau e se tasi pe tape'ese manino. Afai e te faʻatulagaina le Redis server e faʻafefe faʻamaumauga i le disk, ona faʻateleina lea o le faʻatuatuaina o le faiga.

Folasaga i le Vaitafe

Fa'aopoopoina o se fa'ailoga i se vaitafe

au XADD fa'aopoopoina se fa'ailoga fou i le vaitafe. O se fa'amaumauga e le na'o se manoa, e aofia ai le tasi pe sili atu pa'aga taua. O le mea lea, o faʻamaumauga taʻitasi ua uma ona faʻatulagaina ma foliga tutusa ma le fausaga o se faila CSV.

> XADD mystream * sensor-id 1234 temperature 19.8
1518951480106-0

I le faʻataʻitaʻiga o loʻo i luga, matou te faʻaopoopoina ni fanua se lua i le vaitafe ma le igoa (ki) "mystream": "sensor-id" ma le "vevela" ma le tau "1234" ma le "19.8", i le faasologa. E pei o le finauga lona lua, o le poloaiga e ave se faʻamatalaga o le a tuʻuina atu i le faʻamatalaga - o lenei faʻamatalaga e faʻamaonia tulaga ese ai mea taʻitasi i totonu o le vaitafe. Ae ui i lea, i le tulaga lea na matou pasia * aua matou te mananaʻo e fai e Redis se ID fou mo i matou. O ID fou taitasi o le a faateleina. O le mea lea, o fa'amaumauga fou ta'itasi o le ai ai se fa'amatalaga maualuga e fa'atatau i fa'amaumauga muamua.

Fa'ailoga fa'ailoga

O le ID ulufale na toe faafoi mai e le poloaiga XADD, e aofia ai vaega e lua:

{millisecondsTime}-{sequenceNumber}

millisecondsTaimi - Taimi Unix i milliseconds (Redis server time). Ae peitai, afai o le taimi nei e tutusa pe itiiti ifo nai lo le taimi o le pueina muamua, ona faaaoga lea o le faailoga taimi o le pueina muamua. O le mea lea, afai e toe foʻi le taimi o le server i le taimi, o le faʻamatalaga fou o le a taofia pea le faʻaopoopoga o meatotino.

fa'asologaNumera fa'aoga mo fa'amaumauga na faia i le millisecond tutusa. fa'asologaNumera o le a si'itia i le 1 fa'atatau i le fa'amatalaga muamua. Ona o le fa'asologaNumera e 64 bits i le lapopoa, o lona uiga e le tatau ona e tamoe i se tapulaa i luga o le numera o faamaumauga e mafai ona gaosia i totonu o le tasi millisecond.

O le faatulagaga o ia mea e iloagofie ai atonu e foliga ese i le tepa muamua. Atonu e taumānatu se tagata faitau lē talitonuina pe aisea ua avea ai le taimi ma vaega o le faailoaina. O le mafuaʻaga o le Redis streams e lagolagoina le tele o fesili ile ID. Talu ai e feso'ota'i le fa'asinomaga ma le taimi na faia ai le fa'amaumauga, o lea e mafai ai ona fesiligia fa'asologa o taimi. O le a tatou vaʻavaʻai i se faʻataʻitaʻiga faʻapitoa pe a tatou vaʻai i le poloaiga XRANGE.

Afai mo nisi mafuaʻaga e manaʻomia ai e le tagata faʻaoga ona faʻamaonia lona lava faʻamatalaga, lea, mo se faʻataʻitaʻiga, e fesoʻotaʻi ma nisi faiga i fafo, ona mafai lea ona tatou pasi atu i le poloaiga. XADD nai lo * e pei ona faʻaalia i lalo:

> XADD somestream 0-1 field value
0-1
> XADD somestream 0-2 foo bar
0-2

Faamolemole ia matau i lenei tulaga e tatau ona e mata'ituina le fa'aopoopoga o le ID e oe lava ia. I la matou faʻataʻitaʻiga, o le faʻamatalaga aupito maualalo o le "0-1", o lea e le talia ai e le poloaiga se isi faʻamatalaga e tutusa pe itiiti ifo i le "0-1".

> XADD somestream 0-1 foo bar
(error) ERR The ID specified in XADD is equal or smaller than the target stream top item

Numera o fa'amaumauga ile vaitafe

E mafai ona maua le numera o faʻamaumauga i totonu o se vaitafe i le faʻaaogaina o le poloaiga XLEN. Mo la matou faʻataʻitaʻiga, o lenei poloaiga o le a toe faʻafoʻi mai le taua lenei:

> XLEN somestream
(integer) 2

Su'ega fa'atatau - XRANGE ma XREVRANGE

Ina ia talosagaina faʻamatalaga e ala i le tele, e manaʻomia ona matou faʻamaonia ni faʻamatalaga se lua - o le amataga ma le faaiuga o le laina. O le laina toe faafoi o le a aofia ai elemene uma, e aofia ai tuaoi. E lua fo'i fa'ailoga fa'apitoa "-" ma le "+", o lona uiga o le fa'amatalaga aupito itiiti (fa'amaumauga muamua) ma le tele (fa'amaumauga mulimuli) i totonu o le vaitafe. O le fa'ata'ita'iga o lo'o i lalo o le a lisi uma ai fa'amaumauga o le vaitafe.

> XRANGE mystream - +
1) 1) 1518951480106-0
   2) 1) "sensor-id"
      2) "1234"
      3) "temperature"
      4) "19.8"
2) 1) 1518951482479-0
   2) 1) "sensor-id"
      2) "9999"
      3) "temperature"
      4) "18.2"

O fa'amaumauga ta'itasi ua toe fa'afo'i mai o se fa'asologa o elemene e lua: o se fa'amatalaga ma se lisi o pa'aga autu-taua. Ua uma ona matou fai atu o faʻamatalaga faʻamaumauga e fesoʻotaʻi ma le taimi. O le mea lea, e mafai ona matou talosagaina se vaega o se vaitaimi patino. Ae ui i lea, e mafai ona matou faʻamaonia i le talosaga e le o le faʻamatalaga atoa, ae naʻo le taimi Unix, faʻateʻaina le vaega e fesoʻotaʻi ma fa'asologaNumera. Ole vaega ole fa'ailoa ole a otometi lava ona seti ile zero ile amataga ole va'aiga ma le maualuga ole tau ile pito ole laina. O lo'o i lalo se fa'ata'ita'iga o le auala e mafai ai ona e talosagaina se va'aiga e lua milliseconds.

> XRANGE mystream 1518951480106 1518951480107
1) 1) 1518951480106-0
   2) 1) "sensor-id"
      2) "1234"
      3) "temperature"
      4) "19.8"

E na'o le tasi le matou fa'amatalaga i lenei vaega, peita'i i fa'amaumauga moni o le fa'ai'uga na toe fa'afo'i e mafai ona tele. Mo lenei mafuaaga XRANGE lagolagoina le COUNT filifiliga. E ala i le faʻamaonia o le aofaʻi, e mafai ona tatou maua muamua faʻamaumauga N. Afai tatou te manaʻomia le mauaina o le isi N faʻamaumauga (pagination), e mafai ona tatou faʻaogaina le ID mulimuli na maua, faʻateleina fa'asologaNumera e tasi ma toe fesili. Sei o tatou vaai i le mea lenei i le faataitaiga o loo mulimuli mai. Matou te amata faʻaopoopo 10 elemene ma XADD (faapea ua uma ona faatumulia mystream i elemene 10). Ina ia amata le suʻesuʻega e maua 2 elemene i le faʻatonuga, matou te amata i le aofaʻi atoa ae o le COUNT tutusa ma le 2.

> XRANGE mystream - + COUNT 2
1) 1) 1519073278252-0
   2) 1) "foo"
      2) "value_1"
2) 1) 1519073279157-0
   2) 1) "foo"
      2) "value_2"

Ina ia faʻaauau pea le faʻaogaina ma isi elemene e lua, matou te manaʻomia le filifilia o le ID mulimuli na maua, o lona uiga 1519073279157-0, ma faʻaopopo le 1 i fa'asologaNumera.
O le taunuuga ID, i lenei tulaga 1519073279157-1, ua mafai nei ona faʻaaogaina e avea ma amataga fou o le tele o finauga mo le isi valaau XRANGE:

> XRANGE mystream 1519073279157-1 + COUNT 2
1) 1) 1519073280281-0
   2) 1) "foo"
      2) "value_3"
2) 1) 1519073281432-0
   2) 1) "foo"
      2) "value_4"

Ma faapena atu ai lava. Aua lavelave XRANGE o le O(log(N)) e su'e ona sosoo ai lea ma le O(M) e toe fa'afo'i elemene M, ona vave lea o laasaga ta'itasi. O lea la, faʻaaogaina XRANGE e mafai ona toe fa'asolo lelei.

au XREVRANGE e tutusa XRANGE, ae toe faʻafoʻi elemene i le faʻasologa faʻasolosolo:

> XREVRANGE mystream + - COUNT 1
1) 1) 1519073287312-0
   2) 1) "foo"
      2) "value_10"

Faamolemole ia matau o le poloaiga XREVRANGE e fa'asolo finauga amata ma taofi i le fa'asologa fa'afeagai.

Faitau tala fou e faʻaaoga XREAD

E masani ona tulai mai le galuega o le lesitala i se vaitafe ma maua na o savali fou. O lenei manatu atonu e foliga tutusa ma Redis Pub/Sub poʻo le poloka o Redis List, ae o loʻo i ai eseesega taua ile faʻaogaina o le Redis Stream:

  1. O fe'au fou ta'itasi e tu'uina atu i le au fai saofaga e ala i le fa'aletonu. O lenei amio e ese mai le poloka Redis List, lea o le a na'o le tasi le tagata fai saofaga na te faitauina se savali fou.
  2. A'o iai i le Redis Pub/Sub e galo uma fe'au ma e le'i fa'aauau pea, i le Vaitafe o fe'au uma e fa'atumauina e fa'avavau (sei vagana ua fa'atupu manino e le kalani le tapeina).
  3. Redis Stream e mafai ai e oe ona faʻavasega le avanoa i feʻau i totonu o le tasi vaitafe. E na'o se tagata fai saofaga e mafai ona va'ai i la latou tala fa'asolopito.

E mafai ona e lesitala i se filo ma maua ni feʻau fou e faʻaaoga ai le poloaiga XFAITAU. E fai si lavelave nai lo XRANGE, o lea o le a tatou amata muamua i faʻataʻitaʻiga faigofie.

> XREAD COUNT 2 STREAMS mystream 0
1) 1) "mystream"
   2) 1) 1) 1519073278252-0
         2) 1) "foo"
            2) "value_1"
      2) 1) 1519073279157-0
         2) 1) "foo"
            2) "value_2"

O le faʻataʻitaʻiga o loʻo i luga o loʻo faʻaalia ai se pepa e le poloka XFAITAU. Manatua o le COUNT filifiliga e filifili. O le mea moni, e na'o le pau lava le filifiliga e mana'omia o le STREAMS filifiliga, lea e fa'amaoti ai se lisi o vaitafe fa'atasi ai ma le fa'ailoga maualuga e fetaui. Na matou tusia le "STREAMS mystream 0" - matou te mananaʻo e maua uma faʻamaumauga o le mystream stream ma se faʻamatalaga sili atu nai lo le "0-0". E pei ona mafai ona e vaʻaia mai le faʻataʻitaʻiga, o le poloaiga e toe faʻafoʻi le igoa o le filo aua e mafai ona matou lesitala i filo e tele i le taimi e tasi. E mafai ona matou tusia, mo se faʻataʻitaʻiga, "STREAMS mystream otherstream 0 0". Fa'amolemole a mae'a le filifiliga STREAMS e mana'omia ona tu'u muamua igoa o vaitafe uma e mana'omia ma na'o le lisi o fa'amatalaga.

I lenei faiga faigofie e le faia e le poloaiga se mea faapitoa pe a faatusatusa i XRANGE. Ae ui i lea, o le mea manaia e faigofie ona tatou liliu XFAITAU i se poloaiga poloka, faʻamaonia le finauga BLOCK:

> XREAD BLOCK 0 STREAMS mystream $

I le fa'ata'ita'iga o lo'o i luga, o se filifiliga fou BLOCK o lo'o fa'amaoti mai ma le taimi e fa'agata ai le 0 milliseconds (o lona uiga e fa'atali e le gata). E le gata i lea, nai lo le pasia o le faʻamatalaga masani mo le vaitafe mystream, na pasia se faʻamatalaga faapitoa $. O lenei fa'ailoga fa'apitoa o lona uiga XFAITAU e tatau ona fa'aoga le fa'amatalaga aupito maualuga ile mystream e fai ma fa'amatalaga. O lea o le a matou mauaina naʻo feʻau fou e amata mai i le taimi na amata ai ona matou faʻalogo. I nisi o auala e talitutusa lenei ma le Unix "tail -f" poloaiga.

Manatua pe a faʻaaogaina le BLOCK filifiliga matou te le manaʻomia le faʻaaogaina o le faʻamatalaga faʻapitoa $. E mafai ona matou fa'aogaina so'o se fa'ailoga o lo'o iai i le vaitafe. Afai e mafai e le 'au ona tautua vave le matou talosaga e aunoa ma le poloka, o le a faia, a leai o le a poloka.

poloka XFAITAU e mafai fo'i ona fa'alogo i filo se tele i le taimi e tasi, na'o lou fa'ailoaina o latou igoa. I lenei tulaga, o le poloaiga o le a toe faafoi mai se faʻamaumauga o le vaitafe muamua na maua faʻamatalaga. O le tagata fai saofaga muamua na poloka mo se filo ua tu'uina atu o le a maua muamua fa'amatalaga.

Vaega Fa'atau

I nisi o galuega, matou te mananaʻo e faʻatapulaʻa le avanoa o le au fai saofaga i feʻau i totonu o le tasi filo. O se faʻataʻitaʻiga e mafai ona aoga o se faʻasologa o feʻau ma tagata faigaluega o le a mauaina feʻau eseese mai se filo, faʻatagaina le faʻaogaina o feʻau e fua.

Afai matou te manatu e tolu a matou tagata fai saofaga C1, C2, C3 ma se filo o loʻo i ai feʻau 1, 2, 3, 4, 5, 6, 7, ona tuʻuina atu lea o feʻau e pei o le ata o loʻo i lalo:

1 -> C1
2 -> C2
3 -> C3
4 -> C1
5 -> C2
6 -> C3
7 -> C1

Ina ia ausia lenei aafiaga, e faʻaaogaina e Redis Stream se manatu e taʻua o le Consumer Group. O lenei manatu e talitutusa ma se pseudo-subscriber, lea e mauaina faʻamatalaga mai se vaitafe, ae o loʻo tautuaina e le tele o le au fai saofaga i totonu o se vaega, ma tuʻuina atu faʻamaoniga:

  1. O fe'au ta'itasi e tu'uina atu i se tagata fai saofaga i totonu o le kulupu.
  2. I totonu o se kulupu, e fa'ailoaina le au fai saofaga i o latou igoa, o se manoa e maaleale mata'itusi. Afai e alu ese le au fai saofaga mo se taimi le tumau mai le kulupu, e mafai ona toe faʻafoisia o ia i le kulupu e faʻaaoga ai lona lava igoa tulaga ese.
  3. So'o se Vaega Fa'atau e mulimulita'i i le manatu o le "muamua e le'i faitauina". A talosagaina e le tagata fai saofaga ni fe'au fou, e mafai ona ia mauaina na'o fe'au e le'i tu'uina atu muamua i so'o se tagata fai saofaga i totonu o le kulupu.
  4. O lo'o iai le fa'atonuga e fa'amaonia manino ai na fa'agasolo lelei le fe'au e le tagata fai saofaga. Seia oʻo ina valaʻau lenei poloaiga, o le a tumau pea le savali o loʻo talosagaina i le tulaga "faʻatali".
  5. I totonu o le Consumer Group, e mafai e le au fai saofaga taʻitasi ona talosagaina se talaʻaga o feʻau na tuʻuina atu ia te ia, ae e leʻi faʻatautaia (i le tulaga "faʻatali")

I se tulaga, o le tulaga o le vaega e mafai ona faʻaalia e faapea:

+----------------------------------------+
| consumer_group_name: mygroup          
| consumer_group_stream: somekey        
| last_delivered_id: 1292309234234-92    
|                                                           
| consumers:                                          
|    "consumer-1" with pending messages  
|       1292309234234-4                          
|       1292309234232-8                          
|    "consumer-42" with pending messages 
|       ... (and so forth)                             
+----------------------------------------+

Ua oʻo nei i le taimi e faamasani ai i tulafono autu mo le Consumer Group, e pei o:

  • XGROUP fa'aaoga e fatu ai, fa'aumatia ma pulea vaega
  • XREADGROUP fa'aaoga e faitau fa'asalalau i vaega
  • XACK - o lenei fa'atonuga e mafai ai e le tagata fai saofaga ona fa'ailogaina le fe'au ua fa'agasolo lelei

Fa'avaeina o le Vaega Fa'atau

Se'i tatou fa'apea o lo'o i ai lava le mystream. Ona foliga mai lea o le faʻatonuga o le faʻavae o vaega:

> XGROUP CREATE mystream mygroup $
OK

Pe a fatuina se vaega, e tatau ona tatou pasia se faʻamatalaga, e amata mai i le mea o le a maua ai e le vaega feʻau. Afai tatou te fia maua uma feʻau fou, ona mafai lea ona tatou faʻaogaina le faʻamatalaga faʻapitoa $ (pei o la tatou faʻataʻitaʻiga i luga). Afai e te faʻamaonia 0 nai lo se faʻamatalaga faʻapitoa, ona avanoa uma lea o feʻau i le filo i le vaega.

I le taimi nei ua faia le vaega, e mafai ona tatou vave amata faitau savali e faʻaaoga ai le poloaiga XREADGROUP. O lenei poloaiga e tutusa lelei ma XFAITAU ma lagolagoina le filifiliga BLOCK filifiliga. Ae ui i lea, o loʻo i ai se filifiliga GROUP e manaʻomia e tatau ona faʻamaonia i taimi uma i finauga e lua: le igoa o le vaega ma le igoa o le tagata fai saofaga. E lagolagoina foi le filifiliga COUNT.

A'o le'i faitauina le filo, se'i o tatou tu'u i ai ni fe'au:

> XADD mystream * message apple
1526569495631-0
> XADD mystream * message orange
1526569498055-0
> XADD mystream * message strawberry
1526569506935-0
> XADD mystream * message apricot
1526569535168-0
> XADD mystream * message banana
1526569544280-0

Sei o tatou taumafai e faitau lenei vaitafe i le vaega:

> XREADGROUP GROUP mygroup Alice COUNT 1 STREAMS mystream >
1) 1) "mystream"
   2) 1) 1) 1526569495631-0
         2) 1) "message"
            2) "apple"

O le poloaiga o loʻo i luga e faitauina faʻapea upu nei:

"O aʻu, o Alice, o se sui o laʻu vaega, e manaʻo e faitau se tasi o feʻau mai laʻu vaitafe e leʻi tuʻuina atu i se tasi muamua."

O taimi uma e faia ai e le tagata fai saofaga se taotoga i luga o se vaega, e tatau ona tuʻuina atu lona igoa, faʻapitoa e faʻaalia ai o ia i totonu o le vaega. O loʻo i ai se isi faʻamatalaga sili ona taua i le poloaiga o loʻo i luga - o le faʻamatalaga faʻapitoa ">". O lenei fa'amatalaga fa'apitoa e fa'amama fe'au, ae tu'u ai na'o mea e le'i tu'uina atu muamua.

E le gata i lea, i tulaga faʻapitoa, e mafai ona e faʻamaonia se faʻamatalaga moni e pei o le 0 poʻo soʻo se isi faʻamatalaga aoga. I lenei tulaga o le poloaiga XREADGROUP o le a toe faafoi atu ia te oe se talaʻaga o feʻau ma se tulaga o le "faatalitali" lea na tuʻuina atu i le tagata faʻapitoa (Alice) ae e leʻi faʻaalia i le faʻaaogaina o le poloaiga. XACK.

E mafai ona matou suʻeina lenei amio e ala i le faʻamaonia vave o le ID 0, e aunoa ma le filifiliga COUNT. O le a na ona tatou vaʻai i se savali e tasi o loʻo faʻatali, o lona uiga, o le apu savali:

> XREADGROUP GROUP mygroup Alice STREAMS mystream 0
1) 1) "mystream"
   2) 1) 1) 1526569495631-0
         2) 1) "message"
            2) "apple"

Ae peitaʻi, afai matou te faʻamaonia le feʻau ua maeʻa ona faʻagasolo, ona le toe faʻaalia lea:

> XACK mystream mygroup 1526569495631-0
(integer) 1
> XREADGROUP GROUP mygroup Alice STREAMS mystream 0
1) 1) "mystream"
   2) (empty list or set)

O le taimi nei o Bob e faitau se mea:

> XREADGROUP GROUP mygroup Bob COUNT 2 STREAMS mystream >
1) 1) "mystream"
   2) 1) 1) 1526569498055-0
         2) 1) "message"
            2) "orange"
      2) 1) 1526569506935-0
         2) 1) "message"
            2) "strawberry"

O Bob, o se sui o la'u vaega, na talosaga mo le sili atu ma le lua savali. O le fa'atonuga na'o le lipotia o fe'au e le'i tu'uina atu ona o le fa'ailoga fa'apitoa ">". E pei ona e vaʻaia, o le savali "apu" o le a le faʻaalia talu ai ua uma ona tuʻuina atu ia Alice, o lea e maua ai e Bob le "lanu moli" ma le "strawberry".

I lenei auala, e mafai e Alice, Bob, ma soʻo se isi tagata fai saofaga i le vaega ona faitau savali eseese mai le vaitafe e tasi. E mafai fo'i ona latou faitau i latou tala'aga o fe'au e le'i fa'agaioia pe fa'ailoga fe'au o lo'o fa'agasolo.

E i ai nai mea e teu i lou mafaufau:

  • O le taimi lava e manatu ai le tagata fai saofaga o le savali o se poloaiga XREADGROUP, o lenei savali e alu i le "faatalitali" setete ma ua tofia i lena tagata fai saofaga. O le a le mafai e isi tagata fai saofaga ona faitau lenei fe'au.
  • E otometi lava ona faia le au fai saofaga i luga o le taʻua muamua, e leai se manaʻoga e faʻaalia manino.
  • Faatasi ai ma le fesoasoani a XREADGROUP e mafai ona e faitauina fe'au mai le tele o filo eseese i le taimi e tasi, peita'i mo lenei mea e tatau ona e faia muamua vaega e tutusa le igoa mo filo ta'itasi e fa'aaoga ai. XGROUP

Toe faʻaleleia pe a maeʻa se toilalo

E mafai e le tagata fai saofaga ona toe faʻaleleia mai le toilalo ma toe faitau lana lisi o feʻau ma le tulaga "faatali". Ae ui i lea, i le lalolagi moni, e mafai ona iu ina toilalo tagata fai saofaga. O le a le mea e tupu i feau pipii a le tagata fai saofaga pe afai e le mafai e le tagata fai saofaga ona toe maua mai se toilalo?
O lo'o ofoina atu e le Consumer Group se vaega e fa'aaogaina mo na'o tulaga fa'apea - pe a mana'omia le sui o lē e ana fe'au.

O le mea muamua e tatau ona e faia o le valaau lea o le poloaiga FA'AVAE, lea e faʻaalia ai feʻau uma i totonu o le kulupu ma le tulaga "faʻatali". I lona faiga sili ona faigofie, o le poloaiga e naʻo le lua finauga: le igoa filo ma le igoa o le vaega:

> XPENDING mystream mygroup
1) (integer) 2
2) 1526569498055-0
3) 1526569506935-0
4) 1) 1) "Bob"
      2) "2"

Na fa'aalia e le 'au le aofa'i o fe'au e le'i fa'agaioia mo le vaega atoa ma mo tagata fai saofaga. E na'o Bob e iai ni fe'au mata'ina e lua ona na'o le fe'au na talosagaina e Alice na fa'amaonia mai XACK.

E mafai ona matou talosagaina nisi faʻamatalaga e faʻaaoga ai nisi finauga:

XPENDING {key} {groupname} [{start-id} {end-id} {count} [{consumer-name}]]
{start-id} {end-id} - tele o fa'amatalaga (e mafai ona e fa'aogaina le “-” ma le “+”)
{count} — numera o taumafaiga tiliva
{consumer-name} - igoa o vaega

> XPENDING mystream mygroup - + 10
1) 1) 1526569498055-0
   2) "Bob"
   3) (integer) 74170458
   4) (integer) 1
2) 1) 1526569506935-0
   2) "Bob"
   3) (integer) 74170458
   4) (integer) 1

O lea ua i ai a matou faʻamatalaga mo feʻau taʻitasi: ID, igoa o le au fai saofaga, taimi le aoga i milliseconds ma mulimuli ane le numera o taumafaiga faʻafeiloaʻi. E lua a matou fe'au mai Bob ma ua leai se aoga mo le 74170458 milliseconds, pe a ma le 20 itula.

Faamolemole ia matau e leai se tasi o taofia i matou mai le siakiina po o le a le anotusi o le savali na o le faaaogaina XRANGE.

> XRANGE mystream 1526569498055-0 1526569498055-0
1) 1) 1526569498055-0
   2) 1) "message"
      2) "orange"

E tatau lava ona tatou toe fai faalua le fa'ailoga tutusa i finauga. O lea la ua i ai so matou manatu, atonu o le a filifili Alice pe a uma le 20 itula o le malolo, atonu o le a le toe manuia Bob, ma ua oo i le taimi e fesiligia ai na savali ma toe faaauau le faagasologa mo Bob. Mo lenei mea matou te faʻaaogaina le poloaiga XCLAIM:

XCLAIM {key} {group} {consumer} {min-idle-time} {ID-1} {ID-2} ... {ID-N}

I le faʻaaogaina o lenei faʻatonuga, e mafai ona tatou mauaina se feʻau "fafo" e leʻi faʻatautaia e ala i le suia o lē e ona i le {consumer}. Ae ui i lea, e mafai foʻi ona matou tuʻuina atu se taimi faʻaletonu laʻititi {min-idle-time}. E fesoasoani lea e aloese ai mai se tulaga e taumafai ai tagata e to'alua e suia i le taimi e tasi le tagata e ona ia lava fe'au:

Client 1: XCLAIM mystream mygroup Alice 3600000 1526569498055-0
Clinet 2: XCLAIM mystream mygroup Lora 3600000 1526569498055-0

O le tagata fa'atau muamua o le a toe fa'afo'i le taimi fa'aletonu ma fa'ateleina le fa'atau tu'uina atu. O lea o le a le mafai e le kalani lona lua ona talosagaina.

> XCLAIM mystream mygroup Alice 3600000 1526569498055-0
1) 1) 1526569498055-0
   2) 1) "message"
      2) "orange"

O le fe'au na fai mai ma le manuia e Alice, lea ua mafai nei ona fa'agasolo le fe'au ma fa'ailoaina.

Mai le faʻataʻitaʻiga o loʻo i luga, e mafai ona e vaʻaia o se talosaga manuia e toe faʻafoʻi ai mea o loʻo i totonu o le feʻau lava ia. Peitaʻi, e lē manaʻomia lenei mea. O le filifiliga JUSTID e mafai ona fa'aoga e toe fa'afo'i ai na'o ID fe'au. E aoga lenei mea pe afai e te le fiafia i faʻamatalaga o le feʻau ma manaʻo e faʻateleina le faʻatinoga o le faiga.

Fa'atau tiliva

O le fata e te va'aia i le fa'aaliga FA'AVAE o le numera o fe'au o fe'au ta'itasi. O sea fa'ailoga e fa'aopoopoina i ni auala se lua: pe a fa'amanuiaina se fe'au e ala i XCLAIM po'o le taimi e fa'aoga ai se telefoni XREADGROUP.

O se mea masani mo nisi fe'au e lafo fa'atele. O le mea autu o feʻau uma e iu lava ina faʻatautaia. O nisi taimi e tupu ai fa'afitauli pe a fa'agaioi se fe'au ona o le fe'au lava ia ua leaga, po'o le fa'agaioia o fe'au e mafua ai se mea sese i le fa'ailoga tagata e fa'aaogaina. I lenei tulaga, atonu e foliga mai e leai se tasi o le a mafai ona faʻatautaia lenei feʻau. Talu ai o lo'o iai le matou fa'ata'ita'iga fa'ata'ita'iga, e mafai ona matou fa'aogaina le fa'ailoga lea e su'e ai tulaga fa'apea. O le mea lea, o le taimi lava e oʻo ai le numera o le tuʻuina atu i le numera maualuga e te faʻamaonia, atonu e sili atu le atamai le tuʻuina o sea feʻau i luga o se isi filo ma lafo se faʻamatalaga i le pule o le polokalama.

Setete o filo

au XINFO fa'aaoga e talosagaina fa'amatalaga eseese e uiga i se filo ma ona vaega. Mo se faʻataʻitaʻiga, o se faʻatonuga autu e pei o lenei:

> XINFO STREAM mystream
 1) length
 2) (integer) 13
 3) radix-tree-keys
 4) (integer) 1
 5) radix-tree-nodes
 6) (integer) 2
 7) groups
 8) (integer) 2
 9) first-entry
10) 1) 1524494395530-0
    2) 1) "a"
       2) "1"
       3) "b"
       4) "2"
11) last-entry
12) 1) 1526569544280-0
    2) 1) "message"
       2) "banana"

O le poloaiga i luga o loʻo faʻaalia ai faʻamatalaga lautele e uiga i le vaitafe faʻamaonia. O se faʻataʻitaʻiga laʻititi laʻititi lea:

> XINFO GROUPS mystream
1) 1) name
   2) "mygroup"
   3) consumers
   4) (integer) 2
   5) pending
   6) (integer) 2
2) 1) name
   2) "some-other-group"
   3) consumers
   4) (integer) 1
   5) pending
   6) (integer) 0

O le fa'atonuga o lo'o i luga e fa'aalia ai fa'amatalaga lautele mo vaega uma o le filo fa'apitoa

> XINFO CONSUMERS mystream mygroup
1) 1) name
   2) "Alice"
   3) pending
   4) (integer) 1
   5) idle
   6) (integer) 9104628
2) 1) name
   2) "Bob"
   3) pending
   4) (integer) 1
   5) idle
   6) (integer) 83841983

O le fa'atonuga o lo'o i luga o lo'o fa'aalia ai fa'amatalaga mo tagata uma o lo'o lesitala i le vaitafe ma le vaega fa'apitoa.
Afai e galo ia te oe le faʻatonuga o le syntax, naʻo le fesili i le poloaiga lava ia mo se fesoasoani:

> XINFO HELP
1) XINFO {subcommand} arg arg ... arg. Subcommands are:
2) CONSUMERS {key} {groupname}  -- Show consumer groups of group {groupname}.
3) GROUPS {key}                 -- Show the stream consumer groups.
4) STREAM {key}                 -- Show information about the stream.
5) HELP                         -- Print this help.

Vaitafe Tapula'a Tele

Tele talosaga e le mana'o e aoina fa'amaumauga i totonu o se vaitafe e fa'avavau. E masani ona aoga le i ai o se numera maualuga o feʻau e faʻatagaina ile filo. I isi tulaga, e aoga le faʻanofoina o feʻau uma mai se filo i se isi faleoloa tumau pe a oʻo i le tele o filo faʻamaonia. E mafai ona e faʻatapulaʻaina le tele o se vaitafe e faʻaaoga ai le MAXLEN parameter i le poloaiga XADD:

> XADD mystream MAXLEN 2 * value 1
1526654998691-0
> XADD mystream MAXLEN 2 * value 2
1526654999635-0
> XADD mystream MAXLEN 2 * value 3
1526655000369-0
> XLEN mystream
(integer) 2
> XRANGE mystream - +
1) 1) 1526654999635-0
   2) 1) "value"
      2) "2"
2) 1) 1526655000369-0
   2) 1) "value"
      2) "3"

Pe a faʻaaogaina MAXLEN, o faʻamaumauga tuai e otometi lava ona tape pe a oʻo i se umi faʻamaonia, o lea e iai le tele o le vaitafe. Ae ui i lea, o le teuteuina i lenei tulaga e le tupu i le auala sili ona lelei i le manatua o Redis. E mafai ona e faaleleia le tulaga e pei ona taua i lalo:

XADD mystream MAXLEN ~ 1000 * ... entry fields here ...

O le ~ finauga i le faʻataʻitaʻiga o loʻo i luga o lona uiga tatou te le manaʻomia le faʻatapulaʻaina o le umi o le vaitafe i se tau faʻapitoa. I la matou faʻataʻitaʻiga, atonu o soʻo se numera e sili atu pe tutusa ma le 1000 (mo se faʻataʻitaʻiga, 1000, 1010, poʻo le 1030). Na'o matou fa'ailoa manino mai matou te manana'o e teu e le matou vaitafe ia le itiiti ifo i le 1000 fa'amaumauga. Ole mea lea e sili atu ai le lelei o le puleaina o mafaufauga ile Redis.

E iai fo'i se 'au e ese mai XTRIM, lea e faia le mea lava e tasi:

> XTRIM mystream MAXLEN 10

> XTRIM mystream MAXLEN ~ 10

Taofi faifaipea ma toe faia

O le Redis Stream o loʻo faʻapipiʻiina faʻatasi i nodes pologa ma faʻasaoina i faila e pei o le AOF (ata o faʻamatalaga uma) ma le RDB (faʻamaumauga o galuega tusitusi uma). O lo'o lagolagoina fo'i le Replication of Consumer Groups state. O le mea lea, afai o se feʻau o loʻo i totonu o le "faatalitali" tulaga i luga o le matai node, ona i luga o le pologa nodes o lenei savali o le ai ai le tulaga tutusa.

Ave'ese elemene ta'itasi mai se vaitafe

E iai se fa'atonuga fa'apitoa e tape ai fe'au XDEL. O le poloaiga e maua ai le igoa o le filo sosoo ai ma le ID feʻau e tapeina:

> XRANGE mystream - + COUNT 2
1) 1) 1526654999635-0
   2) 1) "value"
      2) "2"
2) 1) 1526655000369-0
   2) 1) "value"
      2) "3"
> XDEL mystream 1526654999635-0
(integer) 1
> XRANGE mystream - + COUNT 2
1) 1) 1526655000369-0
   2) 1) "value"
      2) "3"

A faʻaaogaina lenei faʻatonuga, e tatau ona e manatua o le manatua moni o le a le faʻasaʻoloto vave.

Ole umi ole vaitafe

O le eseesega i le va o vaitafe ma isi faʻamaumauga o faʻamaumauga a Redis o le a le toe i ai i isi faʻamaumauga faʻamaumauga i totonu ia i latou, o se itu e aʻafia ai, o le fausaga o faʻamaumauga lava ia o le a aveesea mai le manatua. O lea la, mo se faʻataʻitaʻiga, o le seti seti o le a aveesea atoa pe a aveese e le ZREM le elemene mulimuli. Ae, o filo e faʻatagaina e tumau i le manatua e tusa lava pe leai ni elemene i totonu.

iʻuga

Redis Stream e lelei mo le fatuina o fefaʻatauaʻiga feʻau, faʻasologa o feʻau, faʻapipiʻi tuʻufaʻatasia, ma tala faʻasolopito-tausia faʻasalalauga.

E pei ona ou fai atu muamua Niklaus Wirth, polokalame o algorithms faʻatasi ai ma faʻamaumauga faʻamaumauga, ma ua uma ona tuʻuina atu e Redis ia te oe uma.

puna: www.habr.com

Faaopoopo i ai se faamatalaga