Redis XTRIM

Redis Xtrim



Žemo lygio informacija apie Redis srautus

„Redis“ srautai yra tik priedų duomenų struktūra, teikianti labai efektyvių skaitymo ir įterpimo operacijų rinkinį su atmintį taupančiu saugojimo mechanizmu. Viduje Redis srautai naudoja Radix medžio duomenų struktūrą, kuri yra erdvei optimizuotas medis, turintis didelį atminties efektyvumą.

Redis srautai saugo duomenis kaip įrašų sąrašą, kuriame kiekvieną įrašą sudaro raktų ir reikšmių poros. Žemu lygiu šie įrašai supakuoti į makromazgus, kaip parodyta toliau.









Šiame straipsnyje mes sutelkiame dėmesį į srauto įrašų pašalinimą naudojant XTRIM komandą, o aukščiau minėta koncepcija labai veikia pašalinimo operacijos efektyvumą. Paprastai Redis srauto įrašo pašalinimas yra labai efektyvus, jei tai daroma makro mazgo lygiu, bet ne pradinio lygio. Šis mechanizmas įgyvendinamas naudojant XTRIM komandą, kurią aptarsime kitame skyriuje.



XTRIM komanda

Komanda XTRIM naudojama srauto įrašams nutraukti pagal nurodytą slenkstinę vertę. Slenkstis gali būti maksimalus įrašų skaičius sraute arba senesnis įrašo ID. Komanda XTRIM priima slenksčio tipą kaip komandos argumentą. XTRIM komandos sintaksė yra tokia.





XTRIM srauto_raktas MAXLEN | MINIDAS [ = | ~ ] slenksčio_vertė [ LIMIT skaičius ]

srauto_raktas : Redis srauto raktas.

MAXLEN : didžiausias srauto ilgis apkarpius įrašus. Bus pašalinti visi įrašai, viršijantys srauto ilgį, nurodytą slenksčio verte. Šis argumentas yra teigiamas sveikasis skaičius.

MINIDAS : minimalus srauto ID, kuris turėtų likti apkarpius įrašus. Bus pašalinti visi įrašai, kurių ID mažesnis už nurodytą slenkstį. Kai nurodote šį parametrą, slenkstis tampa srauto ID.

= operatorius : Kai nurodyta, tiksliai apkarpoma pagal slenkstinę vertę.

~ operatorius : Kai nurodyta, bus atliktas beveik tikslus apkarpymas pagal slenkstinę vertę ir makromazgo dydį.

slenksčio_vertė : slenksčio vertė, pagrįsta argumentu MAXLEN arba MINID.

LIMIT skaičius : didžiausias pašalintinų įrašų skaičius.

Naudojimo atvejis 01 – srauto įrašų pašalinimas pagal maksimalų ilgį

Tarkime, kad turizmo įmonė turi Redis parduotuvę, kad galėtų sekti turistinę informaciją. „Redis“ srautų duomenų struktūra buvo naudojama kiekvieno turisto informacijai saugoti kaip pagrindinių ir verčių poroms. Laikui bėgant, srautas išaugo ir jie planuoja išsaugoti tik 1000 naujausių įrašų. Taigi jie nustatė, kad didžiausias srauto ilgis bet kuriuo metu turėtų būti 1000. Tam buvo panaudota komanda XTRIM.

Demonstravimo tikslais pirmiausia sukursime srautą su 10 įrašų, kaip nurodyta toliau. XADD komanda buvo naudojama įterpimui atlikti.

xadd turistinę informaciją * pavadinkite Džeko šalį Italijoje šeimos nariai 5
xadd turistinę informaciją * pavadinkite Hario šalį JAV šeimos nariais du
xadd turistinę informaciją * pavadinimas Nikomita šalis Japonija familymems 3
xadd turistinę informaciją * pavadinimas zakaria country indija familymems du
xadd turistinę informaciją * pavadinkite Redmondo šalies Brazilijos šeimos narius 6
xadd turistinę informaciją * vardas rasta šalis Japonija šeimos nariai 3
xadd turistinę informaciją * vardas Maryjohn country usa familymems du
xadd turistinę informaciją * vardas liza šalis italija familymems 5
xadd turistinę informaciją * vardas nimshikaa šalies japonijos šeimos nariai 3
xadd turistinę informaciją * vardas nisha country italy familymems 5

Naudokime komandą XRANGE norėdami patikrinti srauto turistinę informaciją, kaip nurodyta toliau.

xrange turistinė informacija - +

Išvestis:

Kaip ir tikėtasi, ši komanda rodo 10 srauto įrašų.

Demonstravimo tikslais apkarpysime srautą ten, kur didžiausias jo ilgis būtų 5.

xtrim turistinė informacija maxlen 5

Dar kartą patikrinkime srauto įrašus naudodami komandą XRANGE.

Kaip ir tikėtasi, iš upelio buvo iškeldinti penki įėjimai, o jo ilgis siekia 5.

02 naudojimo atvejis – srauto įrašų pašalinimas pagal srauto ID

Paimkime pavyzdį, kai orų kompanija seka tam tikros vietos orų informaciją naudodama Redis srautus. Dabar jie nori ištrinti senesnius įrašus, kurių nebereikia. Mes galime naudoti komandą XTRIM naudodami MINID strategiją, kaip parodyta toliau.

Pirmiausia sukursime srautą pavadinimu weatherinfo ir pridėsime prie jo 5 įrašus, kaip nurodyta toliau.

xadd orų informaciją * temp 10 drėgmės penkiasdešimt
xadd orų informaciją * temp dvidešimt drėgmės 70
xadd orų informaciją * temp 12 drėgmės 65
xadd orų informaciją * temp penkiolika drėgmės 88
xadd orų informaciją * temp 18 drėgmės Keturi. Penki

Išvestis:

Naudokime komandą XTRIM, kad pašalintume įrašus, kurių ID yra mažesni nei nurodyta slenkstinė reikšmė.

xtrim orų informacija MINID 1660485503248 - 0

Minimalus nurodytas ID yra susietas su trečiuoju įrašu. Taigi įrašai po trečiojo įrašo, kurių ID yra mažesni, bus ištrinti.

Išvestis:

Kadangi aiškiai nenurodėme = arba ~ argumentų, komanda pagal numatytuosius nustatymus naudoja = operatorių. Taigi abiem naudojimo atvejais buvo atliktas tikslus apipjaustymas. Jei aiškiai nurodėte operatorių ~, bus atliktas beveik tikslus apkarpymas, kaip parodyta toliau.

Kaip parodyta aukščiau esančiame paveikslėlyje, komanda XTRIM buvo naudojama su ~ operatoriumi. Mes prašome komandos pašalinti visus įrašus, kurie viršija 100 ilgį. Kadangi mes neverčiame komandos XTRIM atlikti tikslaus apkarpymo, ji bus sutelkta į apkarpymo operacijos efektyvumą. Taigi, jis nepašalins tiesioginių įrašų, priklausančių tam pačiam makro mazgui. Tai išsaugos kitus tris įrašus, esančius tame pačiame makro mazge, ir pašalins visus makro mazgus po jų. Tai žymiai pagerina našumą nei taikant tikslų apipjaustymo metodą, o tai verčia komandą įdėti papildomų pastangų. Ta pati procedūra atliekama, kai slenkstis yra pagrįstas įvesties ID.

Argumentas LIMIT riboja iškeldintų įrašų skaičių iš nurodyto srauto, kurį galima naudoti norint šiek tiek pagerinti našumą.

Išvada

Trumpai tariant, komanda XTRIM naudojama srauto įrašams pašalinti pagal slenkstinę vertę. Slenkstinės reikšmės tipą galima pakeisti atsižvelgiant į kontekstą, kuris yra nurodomas naudojant komandų MAXLEN ir MINID argumentus. Kaip aptarta, apipjaustymas gali būti atliekamas dviem būdais, kai apkarpymo operacija slenkstį įvertins kaip tikslią arba apytikslę ribą. Pagal numatytuosius nustatymus komanda naudoja = operatorių, kuris naudojamas tiksliam apkarpymui. Naudodami operatorių ~ galite atlikti apytikslį apkarpymą, kaip minėta aukščiau esančiame skyriuje. Apskritai apytikslis apkarpymo metodas ir LIMIT argumentas padeda žymiai padidinti našumą naudojant komandą XTRIM.