Redis MGET

Redis Mget



Redis snaren uitgelegd

De strings zijn de meest elementaire en fundamentele gegevensstructuur die door de Redis-database is geïntroduceerd. De Redis-strings zijn binaire veilige reeksen van bytes. Ze lijken veel op normale strings die beschikbaar zijn in programmeertalen zoals Java en c#.net. Het belangrijkste is dat de Redis-tekenreeksen kunnen worden gebruikt om bijna alles op te slaan dat u leuk vindt, zoals tekenreeksen, gehele getallen, geserialiseerde JSON's, XML's en binaire waarden. Aangezien het gegevenstype Redis-string binair veilig is, kunnen binaire objecten zoals afbeeldingen, video's en documenten eenvoudig worden opgeslagen met behulp van strings. Bovendien kan een enkele Redis-string de gegevens tot 512 MB bevatten.







Bovendien wordt de Redis-stringgegevensstructuur vaak gebruikt in de volgende gevallen:



  • Caching
    • Sessie opslag
    • API-antwoorden
    • HTML-pagina's
  • Balie
  • Bitmap-implementatie en bitsgewijze bewerkingen

De meest gebruikte stringbewerkingen zijn SET, GET, MGET en SETNX. De opdrachten INCRBY en INCRBYFLOAT worden vaak gebruikt om de tellers te beheren die zijn geïmplementeerd met behulp van de Redis-tekenreeksgegevensstructuur. In deze zelfstudie wordt de opdracht MGET gedetailleerd beschreven.



MGET-opdracht onthuld

Het MGET-commando wordt gebruikt om de waarden van de gegeven Redis-sleutels op te halen. Het accepteert een of meer sleutels als argumenten. Verder werkt het MGET-commando op O(N)-tijdcomplexiteit waarbij de N het aantal gespecificeerde sleutels is. De syntaxis van de opdracht MGET is als volgt:





MGET-sleutel [ sleutel ... ]

Bij uitvoering van de MGET-opdracht retourneert het een reeks waarden die zijn opgeslagen op de opgegeven Redis-sleutels. Als de sleutel niet bestaat, wordt de speciale waarde geretourneerd nul. Evenzo, als de sleutel geen tekenreekswaarde bevat, a nul waarde wordt geretourneerd.

Use Case: Haal alle API-reacties in de cache op

Laten we uitgaan van een scenario waarin het gegevenstype Redis-tekenreeks wordt gebruikt om een ​​cache te implementeren die de recente API-antwoorden bevat. We gebruiken de opdracht SET om enkele dummy-API-antwoorden op te slaan voor demonstratiedoeleinden.



set dummyhost / klanten 'ricky, bernard, mary, samuel, joe' set dummyhost / leveranciers 'jimmy, jeremy, andrew, hera' set dummyhost / facturen '{'invoices': [{'invoice_id': 1, 'invoice_payment': 1000}, {'invoice_id': 2, 'invoice_payment': 3400}]}'

We slaan een aantal tekenreekswaarden en een geserialiseerd JSON-object op met behulp van het Redis-tekenreeksgegevenstype.

Laten we nu de MGET-opdracht gebruiken om alle antwoorden in elke API-aanroep tegelijk op te halen.

mget dummyhost / klanten dummyhost / leveranciers dummyhost / facturen

Uitgang:

1 ) 'ricky, bernard, mary, samuel, joe'

twee ) 'jimmy, jeremy, andrew, hera'

3 ) '{' facturen ': [{' factuur_id ': 1, ' factuur_betaling ':1000}, {' factuur_id ': twee, ' factuur_betaling ':3400}]}'

Zoals verwacht, worden de waarden in elke sleutel geretourneerd als een array.

Een niet-bestaande sleutel specificeren

Zoals vermeld, retourneert het MGET-commando de speciale waarde nul wanneer een niet-bestaande sleutel wordt verstrekt. Laten we een niet-bestaande sleutel met de naam 'nonexistingkey' specificeren voor de MGET-opdracht en het vorige voorbeeld als volgt uitvoeren:

mget dummyhost / klanten dummyhost / leveranciers dummyhost / facturen niet bestaande sleutel

Zoals je kon zien, is de laatste waarde in de array nul die is gekoppeld aan de niet-bestaande Redis-sleutel.

Over het algemeen is het MGET-commando een ideale kandidaat wanneer we de stringwaarden die op meerdere toetsen zijn opgeslagen in één aanroep moeten ophalen in plaats van het GET-commando meerdere keren aan te roepen.

Conclusie

Samenvattend werkt het MGET-commando op de Redis-stringgegevensstructuur om de waarden te retourneren die zijn opgeslagen op meerdere sleutels in één aanroep. Het accepteert een of meer Redis-sleutels als argumenten. Zoals aangegeven, werkt het MGET-commando in O(N)-tijdcomplexiteit. De use case liet zien hoe u de MGET-opdracht kunt gebruiken om verschillende API-antwoorden die op meerdere sleutels zijn opgeslagen, efficiënt op te halen.