Redis Stream - te pono me te tauine o o punaha korero

Redis Stream - te pono me te tauine o o punaha korero

Ko Redis Stream he momo raraunga waitara hou i whakauruhia ki Redis me te putanga 5.0
Ko te ahua, ko te Redis Stream he Rarangi ka taea e koe te taapiri i nga whakaurunga. Kei ia urunga he tohu motuhake. Ma te taunoa, ka hangaia aunoatia te ID me te tohu tohu wa. Na reira, ka taea e koe te uiui i nga awhe o nga rekoata i roto i te waa, ka whiwhi raraunga hou ranei ka tae mai ki roto i te awa, penei i te tono Unix "tail -f" e panui ana i te konae rangitaki me te whakatio i te wa e tatari ana mo nga raraunga hou. Kia mahara he maha nga kaihoko ka taea te whakarongo ki tetahi miro i te wa kotahi, pera me te maha o nga tukanga "tail -f" ka taea te panui i tetahi konae i te wa kotahi me te kore e taupatupatu tetahi ki tetahi.

Kia mohio ai koe ki nga painga katoa o te momo raraunga hou, me ata titiro ki nga hanganga Redis kua roa e noho ana, e whai kiko ana i te mahi a Redis Stream.

Redis PUB/SUB

Ko te Redis Pub/Sub he punaha korero ngawari kua oti te hanga ki roto i to toa uara-matua. Heoi, ka tae mai te ngawari ki te utu:

  • Ki te kore te kaiwhakaputa mo etahi take, ka ngaro katoa ana kaiohauru
  • Me mohio te kaiwhakaputa ki te wahitau tika o ana kaiohauru katoa
  • Ka taumaha pea te kaiwhakaputa i ana kaiohauru ki te mahi mena ka tere ake te whakaputanga raraunga i te tukatuka
  • Ka mukua te karere mai i te putunga o te kaiwhakaputa i muri tonu i te whakaputanga, ahakoa te maha o nga kaiohauru i tukuna atu me pehea te tere i taea e ratou te whakahaere i tenei karere.
  • Ka whiwhi nga kaiohauru katoa i te panui i te wa ano. Ko nga kaiohauru ano me whakaae i waenga i a raatau ano mo te raupapa o te tukatuka i taua karere ano.
  • Karekau he tikanga hanga-i roto hei whakaū kua tutuki pai te mahi a te kaiohauru i tetahi karere. Mena ka whiwhi te kaiohauru i tetahi panui ka pakaru i te wa e tukatuka ana, kaore te kaiwhakaputa e mohio mo tena.

Rarangi Redis

Ko te Rarangi Redis he hanganga raraunga e tautoko ana i te aukati i nga whakahau panui. Ka taea e koe te taapiri me te panui i nga karere mai i te timatanga me te mutunga o te rarangi. I runga i tenei hanganga, ka taea e koe te hanga i tetahi puranga pai, rarangi ranei mo to punaha tohatoha, a, i te nuinga o te waa ka nui tenei. Nga rereketanga nui mai i Redis Pub/Sub:

  • Ka tukuna te karere ki tetahi kaihoko. Ko te kiritaki kua parea-panui tuatahi ka whiwhi i nga raraunga i te tuatahi.
  • Me timata e Clint te mahi panui mo ia karere. Kaore he mohio o te rarangi mo nga kaihoko.
  • Ka penapenahia nga karere kia panuihia e tetahi, ka mukua ranei. Mena ka whirihorahia e koe te tūmau Redis ki te horoi i nga raraunga ki te kōpae, ka tino piki ake te pono o te punaha.

He kupu whakataki ki te Stream

Te taapiri i tetahi urunga ki te roma

rōpū XADD ka taapirihia he urunga hou ki te roma. Ko te rekoata ehara i te aho noa, he kotahi, neke atu ranei nga takirua uara-matua. No reira, kua hangahia ia urunga me te rite ki te hanganga o te konae CSV.

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

I roto i te tauira i runga ake nei, ka taapirihia e matou nga mara e rua ki te awa me te ingoa (matua) "mystream": "sensor-id" me te "mahana" me nga uara "1234" me "19.8", ia. Hei tohenga tuarua, ka mau te tono i tetahi kaitautuhi ka tautapa ki te urunga - he tohu motuhake tenei kaitautuhi i ia urunga o te awa. Heoi, i tenei keehi i paahitia e matou * na te mea e hiahia ana matou kia hangaia e Redis he ID hou mo matou. Ka piki ake ia ID hou. No reira, ka whai tohu teitei ake o ia urunga hou e pa ana ki nga urunga o mua.

Hōputu tautuhi

Ko te ID urunga i whakahokia mai e te whakahau XADD, e rua nga waahanga:

{millisecondsTime}-{sequenceNumber}

mirihakonaWa — Wa Unix i roto i te milliseconds (Wai tūmau Redis). Heoi, ki te rite te wa o naianei, iti iho ranei i te wa o te rekoata o mua, ka whakamahia te tohu wa o te rekoata o mua. Na reira, ki te hoki te wa tūmau ki te wā, ka pupuri tonu te pūtāutu hou i te āhuatanga pikinga.

tau raupapa whakamahia mo nga rekoata i hangaia i roto i te kotahi manomano. tau raupapa ka piki ake ma te 1 e pa ana ki te urunga o mua. No te mea ko te tau raupapa he 64 nga moka te rahi, na, i roto i te mahi, kaua koe e uru ki te rohe o te maha o nga rekoata ka taea te hanga i roto i te kotahi manomano.

Ko te whakatakotoranga o aua kaitautuhi he ahua ke i te titiro tuatahi. Ka whakaaro pea te kaipanui whakaponokore he aha te wa i uru ai ki te tohu tohu. Ko te take ko te Redis streams e tautoko ana i nga patai awhe ma te ID. I te mea e hono ana te kaitautuhi ki te wa i hangaia ai te rekoata, na tenei ka taea te uiui i nga awhe wa. Ka titiro tatou ki tetahi tauira motuhake ina titiro tatou ki te whakahau XRANGE.

Mena he take e hiahia ana te kaiwhakamahi ki te tautuhi i tana ake tohu, hei tauira, e hono ana ki etahi punaha o waho, katahi ka tukuna atu ki te whakahau. XADD hei utu mo * penei i raro nei:

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

Kia mahara mai i tenei keehi me aroturuki koe i te pikinga ID. I roto i ta maatau tauira, ko te "0-1" te tohu tohu iti rawa, no reira ka kore te whakahau e whakaae ki tetahi atu tohu e rite ana ki te iti iho ranei i te "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

Te maha o nga rekoata mo ia awa

Ka taea te tiki i te maha o nga rekoata i roto i te awa ma te whakamahi noa i te whakahau XLEN. Mo ta maatau tauira, ka whakahokia e tenei whakahau te uara e whai ake nei:

> XLEN somestream
(integer) 2

Uiui awhe - XRANGE me XREVRANGE

Hei tono raraunga ma te awhe, me tohu e rua nga tohu - te timatanga me te mutunga o te awhe. Kei roto i te awhe kua whakahokia mai nga huānga katoa, tae atu ki nga rohenga. E rua ano nga tohu tohu "-" me "+", ko te tikanga ko te iti rawa (te rekoata tuatahi) me te nui rawa (te rekoata whakamutunga) i te awa. Ko te tauira i raro nei ka whakarārangihia ngā tāurunga roma katoa.

> 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"

Ko ia rekoata kua whakahokia mai he huinga huānga e rua: he tautohu me te rarangi o nga takirua uara-matua. Kua kii matou ko nga tohu tohu rekoata e pa ana ki te waa. Na reira, ka taea e taatau te tono mo te waa motuhake. Heoi, ka taea e matou te tohu i roto i te tono ehara i te katoa o te tohu, engari ko te wa Unix anake, me te whakakore i te waahanga e pa ana ki tau raupapa. Ko te wahanga o te kaitautuhi kua waihohia ka tautuhi aunoa ki te kore i te timatanga o te awhe me te uara morahi ka taea i te mutunga o te awhe. Kei raro nei he tauira me pehea e taea ai e koe te tono i te awhe o te rua manomano.

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

Kotahi noa te urunga ki roto i tenei awhe, engari i roto i nga huinga raraunga tuturu he nui te hua i whakahokia mai. Mo tenei take XRANGE e tautoko ana i te kōwhiringa COUNT. Ma te tohu i te rahinga, ka taea noa e tatou nga rekoata N tuatahi. Mena e hiahia ana matou ki te tiki i nga rekoata N e whai ake nei (pagination), ka taea e matou te whakamahi i te ID kua riro mai, whakanuia tau raupapa ma tetahi ka patai ano. Kia titiro tatou ki tenei i roto i te tauira e whai ake nei. Ka timata taatau ki te taapiri i nga huānga 10 me XADD (mehemea kua whakakiia taku awa ki nga huānga 10). Hei timata i te whitiwhitinga kia 2 nga huānga mo ia tono, ka tiimata me te awhe katoa engari me te COUNT e rite ana ki te 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"

Hei haere tonu ki nga huānga e rua e whai ake nei, me kowhiria te ID whakamutunga kua riro mai, ara, 1519073279157-0, me te taapiri 1 ki tau raupapa.
Ko te ID ka puta, i tenei keehi 1519073279157-1, ka taea te whakamahi hei timatanga hou o te tohenga awhe mo te waea e whai ake nei 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"

A pera tonu. No te mea uaua XRANGE Ko O(takiuru(N)) hei rapu, katahi ko O(M) hei whakahoki mai i nga huānga M, katahi ka tere ia taahiraa whitiwhiti. Na, te whakamahi XRANGE Ko nga awa ka taea te mahi pai.

rōpū XREVRANGE ko te orite XRANGE, engari ka whakahoki i nga huānga ki te raupapa whakamuri:

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

Kia mahara ko te whakahau XREVRANGE ka timata nga tautohetohe awhe ka mutu i roto i te raupapa whakamuri.

Te panui i nga urunga hou ma te whakamahi i te XREAD

I te nuinga o nga wa ka puta te mahi ki te ohauru ki tetahi awa me te whiwhi karere hou anake. He rite te ahua o tenei ariā ki te Redis Pub/Sub, te aukati ranei i te Rarangi Redis, engari he rereke nga rereketanga o te whakamahi i te Redis Stream:

  1. Ko ia karere hou ka tukuna ki ia kaiohauru ma te taunoa. He rereke tenei whanonga mai i te Rarangi Redis aukati, ka panuihia he karere hou e te kaiohauru kotahi anake.
  2. I a Redis Pub/Sub ka warewaretia nga karere katoa, karekau e mau tonu, i roto i te Stream ka mau tonu nga karere katoa mo te wa roa (mehemea ka whakakorea e te kaihoko).
  3. Redis Stream ka taea e koe te wehe i te uru ki nga karere i roto i te awa kotahi. Ka taea e tetahi kaitango motuhake te kite i o raatau hitori korero.

Ka taea e koe te ohauru ki tetahi miro ka whiwhi karere hou ma te whakamahi i te whakahau XPĀNUI. He iti ake te uaua atu XRANGE, no reira ka timata tatou ki nga tauira ngawari i te tuatahi.

> 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"

Ko te tauira i runga ake nei e whakaatu ana i te puka kore-aukati XPĀNUI. Kia mahara ko te COUNT he mea whiriwhiri. Otirā, ko te kōwhiringa whakahau anake ko te kōwhiringa STREAMS, e whakapūtā ana i te rārangi roma me te pūtāutu mōrahi e hāngai ana. I tuhia e matou "STREAMS mystream 0" - e hiahia ana matou ki te tango i nga rekoata katoa o te awa mystream me te tohu nui ake i te "0-0". Ka taea e koe te kite mai i te tauira, ka whakahokia e te whakahau te ingoa o te miro na te mea ka taea e tatou te ohauru ki nga miro maha i te wa kotahi. Ka taea te tuhi, hei tauira, "STREAMS mystream otherstream 0 0". Kia mahara mai i muri i te whiringa STREAMS me tuku i te tuatahi nga ingoa o nga awa katoa e hiahiatia ana katahi katahi ano he rarangi ingoa.

I tenei ahua ngawari kaore te whakahau e mahi i tetahi mea motuhake ka whakatauritea ki XRANGE. Heoi, ko te mea whakamere ko te ngawari te huri XPĀNUI ki te tono aukati, e tohu ana i te tohenga BLOCK:

> XREAD BLOCK 0 STREAMS mystream $

I roto i te tauira i runga ake nei, ka tohua he kōwhiringa PARAKA hou me te 0 millisecond (te tikanga he tatari mo te wa mutunga). I tua atu, hei utu mo te tuku i te tohu tohu mo te awa mystream, i tukuna he tohu motuhake $. Ko te tikanga o tenei tohu tohu motuhake XPĀNUI me whakamahi te pūtāutu mōrahi i mystream hei pūtāutu. No reira ka whiwhi karere hou mai i te wa i timata ai te whakarongo. I etahi ahuatanga he rite tenei ki te tono Unix "tail -f".

Kia mahara ko te wa e whakamahi ana i te kōwhiringa PARAKA karekau e tika kia whakamahia te tohu tohu motuhake $. Ka taea e tatou te whakamahi i tetahi tohu tohu kei roto i te awa. Mena ka taea e te roopu te mahi tonu i ta maatau tono me te kore e aukati, ka peratia, ki te kore ka aukati.

Te aukati XPĀNUI Ka taea hoki te whakarongo ki nga miro maha i te wa kotahi, me tohu noa o raatau ingoa. I tenei keehi, ka whakahokia mai e te whakahau he rekoata o te awa tuatahi i whiwhi raraunga. Ko te kaiohauru tuatahi kua aukatia mo tetahi miro ka whiwhi raraunga tuatahi.

Rōpū Kaihoko

I etahi mahi, e hiahia ana matou ki te whakawhāiti i te urunga kaiohauru ki nga karere i roto i te miro kotahi. Ko tetahi tauira ka whai hua tenei ko te rarangi karere me nga kaimahi ka whiwhi karere rereke mai i te miro, ka tuku i te tukatuka karere ki te tauine.

Ki te whakaaro tatou e toru nga kaiohauru C1, C2, C3 me tetahi miro kei roto nga karere 1, 2, 3, 4, 5, 6, 7, ka tukuna nga karere penei i te hoahoa i raro nei:

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

Hei whakatutuki i tenei paanga, ka whakamahi a Redis Stream i tetahi kaupapa e kiia nei ko te Rōpū Kaihoko. He rite tenei ariā ki te kaiohauru pseudo, ka whiwhi raraunga mai i te awa, engari ka tukuna e nga kaiohauru maha i roto i te roopu, e whakarato ana i etahi taurangi:

  1. Ka tukuna ia karere ki tetahi kaiohauru rereke i roto i te roopu.
  2. I roto i te roopu, ka tohua nga kaiohauru ki o raatau ingoa, he aho tairongo. Mena ka wehe atu te kaiohauru i te roopu mo te wa poto, ka taea te whakahoki mai ki te roopu ma te whakamahi i tona ake ingoa ahurei.
  3. Ko ia Rōpū Kaihoko e whai ana i te kaupapa "karere tuatahi kaore ano kia panuitia". Ina tono te kaiohauru i nga karere hou, ka taea noa e ia te whiwhi karere kaore ano kia tukuna i mua ki tetahi kaiohauru i roto i te roopu.
  4. He whakahau ki te whakaū i te tika te tukatuka o te karere e te kaiohauru. Kia karangahia ra ano tenei whakahau, ka noho tonu te karere i tonoa ki te mana "tarewa".
  5. I roto i te Rōpū Kaihoko, ka taea e ia kaiohauru te tono he hitori o nga karere i tukuna atu ki a ia, engari kaore ano kia whakahaerea (i te mana "tarewa")

I roto i te tikanga, ko te ahua o te roopu ka taea te whakaatu penei:

+----------------------------------------+
| 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)                             
+----------------------------------------+

Inaianei kua tae ki te wa ki te mohio ki nga whakahau matua mo te Roopu Kaihoko, ara:

  • XGROUP whakamahia ki te hanga, ki te whakangaro me te whakahaere i nga roopu
  • XREADGROUP whakamahia ki te panui i te roma i roto i te roopu
  • XACK - ma tenei tono ka taea e te kaiohauru te tohu i te karere kua oti te tukatuka

Te Waihanga o te Rōpū Kaihoko

Me whakaaro kei te noho tonu taku awa. Na ka penei te ahua o te whakahau hanga roopu:

> XGROUP CREATE mystream mygroup $
OK

I te wa e hanga ana he roopu, me tuku he tohu tohu, ka timata mai i te roopu ka whiwhi karere. Ki te hiahia noa tatou ki te whiwhi karere hou katoa, katahi ka taea te whakamahi i te tohu tohu motuhake $ (penei i ta maatau tauira i runga ake nei). Mēnā ka whakapūtā koe i te 0 hei utu mō tētahi pūtāutu motuhake, ka wātea ngā karere katoa o te miro ki te rōpū.

Inaianei kua hangaia te roopu, ka taea e taatau te tiimata ki te panui i nga karere ma te whakamahi i te whakahau XREADGROUP. He tino rite tenei whakahau ki XPĀNUI me te tautoko i te kōwhiringa PARAKA. Heoi ano, he whiringa RUPAPA e hiahiatia ana me tohu i nga wa katoa me nga tohenga e rua: te ingoa roopu me te ingoa kaiohauru. Kei te tautokohia te whiringa COUNT.

I mua i te panui i te miro, me tuku etahi karere ki reira:

> 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

Inaianei me ngana ki te panui i tenei awa ma te roopu:

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

Ko te whakahau i runga ake nei ka panui i nga kupu e whai ake nei:

"Ko ahau, te kaiohauru a Alice, he mema o taku roopu, e hiahia ana ahau ki te panui i tetahi panui mai i taku awa kaore ano kia tukuna ki tetahi tangata i mua."

Ia wa ka mahia e te kaiohauru he mahi i runga i tetahi roopu, me whakaatu e ia tona ingoa, he tohu motuhake i roto i te roopu. He korero tino nui ano kei roto i te whakahau i runga ake nei - ko te tohu tohu ">". Ka tātarihia e tenei kaitautuhi motuhake nga karere, ka waiho ko era kaore ano kia tukuna i mua.

I tua atu, i roto i nga keehi motuhake, ka taea e koe te tautuhi i tetahi kaitautuhi tuuturu penei i te 0 me etahi atu tohu tohu whaimana. I tenei keehi ko te whakahau XREADGROUP ka whakahoki mai ki a koe he hitori o nga karere me te mana "tarewa" i tukuna ki te kaiohauru kua tohua (Alice) engari kaore ano kia mohiohia ma te whakamahi i te whakahau XACK.

Ka taea e tatou te whakamatautau i tenei whanonga ma te tautuhi tonu i te ID 0, kaore he whiringa COUNT. Ka kite noa tatou i tetahi karere e tatari ana, ara, te karere aporo:

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

Heoi, ki te whakaūhia e maatau te tukunga o te karere, ka kore e whakaatuhia:

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

Inaianei kua tae ki a Bob te panui i tetahi 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"

Ko Bob, he mema o taku roopu, i tono kia kaua e neke atu i te rua nga karere. Ko te whakahau anake e whakaatu ana i nga karere kaore i tukuna mai na te tohu tohu motuhake ">". Ka kite koe, karekau te karere "aporo" e whakaatuhia mai i te mea kua tukuna atu ki a Alice, na reira ka whiwhi a Bob i te "karaka" me te "ropere".

Ma tenei ara, ka taea e Alice, Bob, me etahi atu kaiohauru ki te roopu te panui i nga karere rereke mai i te awa kotahi. Ka taea hoki e ratou te panui i o raatau hitori o nga karere kaore ano kia tukatukahia, ka tohu ranei i nga karere kua tukatukahia.

He iti nga mea hei maumahara:

  • I te wa ka whakaarohia e te kaiohauru he whakahau te karere XREADGROUP, ka uru tenei karere ki te ahua "tarewa" ka tukuna ki taua kaiohauru motuhake. E kore e taea e etahi atu kaiohauru roopu te panui i tenei karere.
  • Ka hanga aunoa nga kaiohauru i runga i te whakahuatanga tuatahi, kaore he take ki te hanga marama.
  • Ma te awhina o XREADGROUP Ka taea e koe te panui i nga karere mai i nga momo miro maha i te wa kotahi, engari mo tenei mahi me hanga tuatahi koe i nga roopu me te ingoa kotahi mo ia miro ma te whakamahi XGROUP

Te whakaoranga i muri i te korenga

Ka taea e te kaiohauru te whakaora mai i te korenga me te panui ano i tana rarangi karere me te mana "tarewa". Heoi, i roto i te ao tūturu, ka ngaro pea nga kaiohauru. Ka ahatia nga karere mau a te kaiohauru ki te kore e taea e te kaiohauru te whakaora mai i te rahunga?
Ka tukuna e te Rōpū Kaihoko tetahi waahanga ka whakamahia mo enei keehi - ina hiahia koe ki te whakarereke i te rangatira o nga karere.

Ko te mea tuatahi me mahi koe ko te karanga i te whakahau TE WHAKAMAHI, e whakaatu ana i nga karere katoa i roto i te roopu me te mana "tarewa". I roto i tona ahua ngawari, ka karangahia te whakahau me nga tohenga e rua anake: te ingoa miro me te ingoa roopu:

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

I whakaatuhia e te roopu te maha o nga karere kaore ano kia tukatukahia mo te roopu katoa me ia kaiohauru. Kei a matou anake a Bob me nga karere tino pai e rua na te mea ko te karere anake i tonohia e Alice i whakamanahia XACK.

Ka taea e matou te tono atu korero ma te whakamahi i etahi atu tohenga:

XPENDING {key} {groupname} [{start-id} {end-id} {count} [{consumer-name}]]
{start-id} {end-id} - te awhe o nga tautohu (ka taea e koe te whakamahi “-” me “+”)
{count} — te maha o nga ngana tuku
{ingoa-kaihokohoko} - ingoa roopu

> 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

Inaianei kei a maatau nga korero mo ia karere: ID, ingoa kaiohauru, wa mangere i roto i nga mira hēkona me te mutunga te maha o nga nganatanga tuku. E rua a matou karere mai i a Bob, a kua noho mangere mo te 74170458 milliseconds, tata ki te 20 haora.

Kia mahara kaore tetahi e aukati i a maatau ki te tirotiro he aha nga korero o te panui ma te whakamahi noa XRANGE.

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

Me whakahoki ano tatou i taua tautohu kia rua i roto i nga tautohetohe. Inaianei kei a maatau etahi whakaaro, ka whakatau pea a Alice i muri i te 20 haora o te wa whakaroa, kare pea a Bob e ora ake, a kua tae ki te wa ki te uiui i aua karere me te mahi ano mo Bob. Mo tenei ka whakamahia e matou te whakahau XCLAIM:

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

Ma te whakamahi i tenei whakahau, ka taea e tatou te whiwhi karere "ke" kaore ano kia whakahaerea ma te huri i te rangatira ki te {consumer}. Heoi, ka taea hoki e matou te whakarato i te wa mangere iti {min-idle-time}. Ka awhina tenei ki te karo i tetahi ahuatanga e ngana ana nga kaihoko e rua ki te huri i te rangatira o nga karere kotahi:

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

Ko te kaihoko tuatahi ka tautuhi ano i te wa whakaheke me te whakanui ake i te kaute tuku. Na e kore e taea e te kiritaki tuarua te tono.

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

I angitu te korero a Alice, ka taea e ia te whakahaere i te karere me te whakaae.

Mai i te tauira i runga ake nei, ka kite koe he tono angitu te whakahoki i nga ihirangi o te karere ake. Engari, kaore e tika ana tenei. Ka taea te whakamahi i te kōwhiringa JUSTID ki te whakahoki i nga ID karere anake. He pai tenei ki te kore koe e aro ki nga korero o te karere me te hiahia ki te whakanui ake i te mahinga o te punaha.

Kaute tuku

Ko te porotiti ka kite koe i te putanga TE WHAKAMAHI ko te maha o nga tukunga o ia karere. Ka whakanuia taua porotiti i roto i nga huarahi e rua: i te wa e pai ana te tono karere ma XCLAIM ka whakamahia ranei he waea XREADGROUP.

He mea noa kia tukuna etahi karere i nga wa maha. Ko te mea nui ko nga karere katoa ka tukuna. I etahi wa ka puta he raruraru i te wa e tukatuka ana i te karere na te mea kua kino te karere, kei te raru ranei te tukatuka karere i te waehere kaihautu. I tenei keehi, ka puta pea karekau he tangata e kaha ki te whakahaere i tenei karere. I te mea kei a matou he porotiti ngana tuku, ka taea e matou te whakamahi i tenei porotiti kia kitea nga ahuatanga penei. No reira, ka tae te kaute tuku ki te tau teitei kua tohua e koe, he pai ake pea te tuku i taua karere ki tetahi atu miro me te tuku panui ki te kaiwhakahaere punaha.

State Miro

rōpū XINFO whakamahia ki te tono momo korero mo te miro me ona roopu. Hei tauira, he penei te ahua o te whakahau taketake:

> 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"

Ko te whakahau i runga e whakaatu ana i nga korero whanui mo te awa kua tohua. Inaianei he tauira uaua ake:

> 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

Ko te whakahau i runga e whakaatu ana i nga korero whanui mo nga roopu katoa o te miro kua tohua

> 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

Ko te whakahau i runga ake nei e whakaatu ana i nga korero mo nga kaiohauru katoa o te awa me te roopu kua tohua.
Mena ka wareware koe ki te wetereo whakahau, patai ki te whakahau ano mo te awhina:

> 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.

Tepe Rahi awa

He maha nga tono kaore e hiahia ki te kohi raraunga ki roto i te awa mo ake tonu atu. I te nuinga o te wa ka whai hua te maha o nga karere e whakaaetia ana mo ia miro. I etahi atu take, he pai ki te neke i nga karere katoa mai i tetahi miro ki tetahi atu toa tohe ina tae ki te rahi o te miro kua tohua. Ka taea e koe te whakawhāiti i te rahi o te awa ma te whakamahi i te tawhā MAXLEN i te whakahau 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"

I te wa e whakamahi ana i te MAXLEN, ka mukua aunoa nga rekoata tawhito ina tae ki te roa kua tohua, na reira he rahi tonu te awa. Engari, ko te tapahi i tenei keehi kaore e puta i te huarahi tino pai ki te mahara a Redis. Ka taea e koe te whakapai ake i te ahuatanga e whai ake nei:

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

Ko te tohenga ~ i roto i te tauira i runga ake nei ko te tikanga kaore e tika kia whakawhāitihia te roa o te awa ki tetahi uara motuhake. I roto i ta maatau tauira, he tau nui ake, he rite ranei ki te 1000 (hei tauira, 1000, 1010, 1030 ranei). Ko ta matou i kii maata tonu e hiahia ana matou ki te penapena i to maatau roma kia 1000 nga rekoata. Ma tenei ka pai ake te whakahaere mahara i roto i a Redis.

He roopu motuhake ano XTRIM, he rite tonu te mahi:

> XTRIM mystream MAXLEN 10

> XTRIM mystream MAXLEN ~ 10

Te rokiroki me te tāruarua

Ko te Redis Stream ka tukutahia ki nga kopuku taurekareka ka tiakina ki nga konae penei i te AOF (whakaahua o nga raraunga katoa) me te RDB (takiuru mo nga mahi tuhi katoa). Ka tautokohia ano te kape o te kawanatanga Rōpū Kaihoko. No reira, ki te mea kei te "tarewa" te mana o te karere i runga i te node ariki, kei runga i nga pona taurekareka ka rite te mana o tenei karere.

Te tango i nga huānga takitahi mai i te awa

He whakahau motuhake hei muku i nga karere XDEL. Ka whiwhi te whakahau i te ingoa o te miro ka whai i nga ID karere kia mukua:

> 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"

I te wa e whakamahi ana koe i tenei whakahau, me mahara koe kaore e tukuna te mahara tonu.

Kore nga awa roa

Ko te rereketanga i waenga i nga awa me etahi atu hanganga raraunga Redis ko te mea ka kore he waahanga o etahi atu hanganga raraunga i roto, hei painga taha, ko te hanganga raraunga ake ka tangohia mai i te mahara. Na, hei tauira, ka tangohia katoatia te huinga kua tohua ina tangohia e te waea ZREM te huānga whakamutunga. Engari, ka noho tonu nga miro ki roto i te mahara ahakoa kaore he huānga o roto.

mutunga

He pai te Redis Stream mo te hanga kaihokohoko karere, rarangi karere, takiuru whakakotahi, me nga punaha korero korero korero.

Ka rite ki taku korero i mua Niklaus Wirth, Ko nga papatono he algorithms me nga hanganga raraunga, a kua hoatu e Redis ki a koe e rua.

Source: will.com

Tāpiri i te kōrero