Redis Strings Explained
Strengene er den mest grunnleggende og grunnleggende datastrukturen introdusert av Redis-databasen. Redis-strengene er binære sikre sekvenser av byte. De ligner mye på vanlige strenger som er tilgjengelige i programmeringsspråk som Java og c#.net. Det viktigste er at Redis-strengene kan brukes til å lagre nesten alt du liker, for eksempel strenger, heltall, serialiserte JSON-er, XML-er og binære verdier. Siden Redis-strengdatatypen er binærsikker, kan binære objekter som bilder, videoer og dokumenter enkelt lagres ved hjelp av strenger. I tillegg kan en enkelt Redis-streng inneholde data på opptil 512 MB.
Videre er Redis-strengdatastrukturen ofte brukt i følgende brukstilfeller:
- Buffer
- Øktlagring
- API-svar
- HTML-sider
- Disk
- Bitmapimplementering og bitvise operasjoner
De mest brukte strengoperasjonene er SET, GET, MGET og SETNX. INCRBY- og INCRBYFLOAT-kommandoene brukes vanligvis til å administrere tellerne implementert ved hjelp av Redis-strengdatastrukturen. I denne opplæringen er MGET-kommandoen detaljert.
MGET-kommando avslørt
MGET-kommandoen brukes til å hente verdiene til de gitte Redis-nøklene. Den godtar en eller flere nøkler som argumenter. Videre opererer MGET-kommandoen på O(N)-tidskompleksitet der N er antallet spesifiserte nøkler. Syntaksen til MGET-kommandoen er som følger:
MGET-nøkkel [ nøkkel ... ]
Ved utførelse av MGET-kommandoen returnerer den en rekke verdier som er lagret på de spesifiserte Redis-nøklene. Hvis nøkkelen ikke eksisterer, returnerer den spesialverdien null. På samme måte, hvis nøkkelen ikke inneholder en strengverdi, a null verdien returneres.
Brukstilfelle: Hent alle bufrede API-svar
La oss anta et scenario der Redis-strengdatatypen brukes til å implementere en cache som inneholder de nylige API-svarene. Vi bruker SET-kommandoen til å lagre noen dummy API-svar for demonstrasjonsformål.
sett dummyhost / kunder 'ricky, bernard, mary, samuel, joe' sett dummyhost / leverandører 'jimmy, jeremy, andrew, hera' sett dummyhost / fakturaer '{'invoices': [{'invoice_id': 1, 'invoice_payment': 1000}, {'invoice_id': 2, 'invoice_payment': 3400}]}'
Vi lagrer et par strengverdier og et serialisert JSON-objekt ved å bruke Redis-strengdatatypen.
La oss nå bruke MGET-kommandoen til å hente alle svarene i hvert API-kall samtidig.
får dummyhost / kunder dummyhost / leverandører dummyhost / fakturaer
Produksjon:
1 ) 'ricky, bernard, mary, samuel, joe'to ) 'jimmy, jeremy, andrew, hera'
3 ) «{» fakturaer ': [{' invoice_id ': 1, ' fakturabetaling ':1000}, {' invoice_id ': to, ' fakturabetaling ':3400}]}'
Som forventet returneres verdiene i hver nøkkel som en matrise.
Spesifisere en ikke-eksisterende nøkkel
Som nevnt returnerer MGET-kommandoen den spesielle verdien null når en ikke-eksisterende nøkkel er levert. La oss spesifisere en ikke-eksisterende nøkkel kalt 'nonexistingkey' til MGET-kommandoen og utføre forrige eksempel som følger:
mget dummyhost / kunder dummyhost / leverandører dummyhost / fakturaer ikke-eksisterende nøkkel
Som du kunne se, er den siste verdien i matrisen null som er knyttet til den ikke-eksisterende Redis-nøkkelen.
Totalt sett er MGET-kommandoen en ideell kandidat når vi trenger å hente strengverdiene som er lagret på flere nøkler i en samtale i stedet for å ringe GET-kommandoen flere ganger.
Konklusjon
Oppsummert, MGET-kommandoen opererer på Redis-strengdatastrukturen for å returnere verdiene som er lagret på flere nøkler i en samtale. Den godtar en eller flere Redis-nøkler som argumenter. Som fremhevet, opererer MGET-kommandoen i O(N)-tidskompleksitet. Brukstilfellet viste deg hvordan du bruker MGET-kommandoen til å hente flere API-svar lagret på flere nøkler effektivt.