Redis MGET

Redis Mget



Razlaga nizov Redis

Nizi so najosnovnejša in temeljna podatkovna struktura, ki jo uvaja baza podatkov Redis. Nizi Redis so dvojiško varna zaporedja bajtov. Zelo so podobni običajnim nizom, ki so na voljo v programskih jezikih, kot sta Java in c#.net. Najpomembneje je, da lahko nize Redis uporabite za shranjevanje skoraj česar koli, kot so nizi, cela števila, serializirani JSON, XML in binarne vrednosti. Ker je niz podatkovnega tipa Redis binarno varen, je mogoče binarne predmete, kot so slike, videi in dokumenti, preprosto shraniti z nizi. Poleg tega lahko en sam niz Redis vsebuje podatke do 512 MB.







Poleg tega se podatkovna struktura niza Redis običajno uporablja v naslednjih primerih uporabe:



  • Predpomnjenje
    • Shranjevanje sej
    • API odgovori
    • HTML strani
  • števec
  • Implementacija bitne slike in bitne operacije

Najpogosteje uporabljene nizovne operacije so SET, GET, MGET in SETNX. Ukaza INCRBY in INCRBYFLOAT se običajno uporabljata za upravljanje števcev, implementiranih s podatkovno strukturo nizov Redis. V tej vadnici je podrobno opisan ukaz MGET.



Razkrit ukaz MGET

Ukaz MGET se uporablja za pridobivanje vrednosti danih ključev Redis. Kot argumente sprejme enega ali več ključev. Poleg tega ukaz MGET deluje na časovni kompleksnosti O(N), kjer je N podano število ključev. Sintaksa ukaza MGET je naslednja:





Ključ MGET [ ključ ... ]

Po izvedbi ukaza MGET vrne niz vrednosti, ki so shranjene na podanih ključih Redis. Če ključ ne obstaja, vrne posebno vrednost nič. Podobno, če ključ ne vsebuje vrednosti niza, a nič vrednost je vrnjena.

Primer uporabe: pridobi vse predpomnjene odgovore API-ja

Predpostavimo scenarij, kjer se podatkovni tip niza Redis uporablja za implementacijo predpomnilnika, ki hrani nedavne odzive API-ja. Ukaz SET uporabljamo za shranjevanje nekaterih navideznih odzivov API-ja za namene predstavitve.



set dummyhost / stranke 'ricky, bernard, mary, samuel, joe' set dummyhost / dobavitelji 'jimmy, jeremy, andrew, hera' set dummyhost / računi '{'invoices': [{'invoice_id': 1, 'invoice_payment': 1000}, {'invoice_id': 2, 'invoice_payment': 3400}]}'

Shranimo nekaj nizovnih vrednosti in serializiran objekt JSON z uporabo nizovnega podatkovnega tipa Redis.

Zdaj pa uporabimo ukaz MGET za pridobitev vseh odgovorov v vsakem klicu API-ja hkrati.

mget dummyhost / stranke dummyhost / dobavitelji dummyhost / računi

Izhod:

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

dva ) 'jimmy, jeremy, andrew, hera'

3 ) '{' računi ': [{' invoice_id ': 1, ' invoice_payment ':1000}, {' invoice_id ': dva, ' invoice_payment ':3400}]}'

Po pričakovanjih so vrednosti v vsakem ključu vrnjene kot niz.

Določanje neobstoječega ključa

Kot že omenjeno, ukaz MGET vrne posebno vrednost nič ko je na voljo neobstoječ ključ. Določimo neobstoječi ključ, imenovan »nonexistingkey« za ukaz MGET, in izvedimo prejšnji primer, kot sledi:

mget dummyhost / stranke dummyhost / dobavitelji dummyhost / računi neobstoječi ključ

Kot lahko vidite, je zadnja vrednost v matriki nič ki je povezan z neobstoječim ključem Redis.

Na splošno je ukaz MGET idealen kandidat, ko moramo v enem klicu pridobiti vrednosti nizov, shranjenih na več ključih, namesto da večkrat kličemo ukaz GET.

Zaključek

Če povzamemo, ukaz MGET deluje na podatkovni strukturi niza Redis, da vrne vrednosti, shranjene pri več ključih v enem klicu. Kot argumente sprejme enega ali več ključev Redis. Kot je poudarjeno, ukaz MGET deluje v časovni kompleksnosti O(N). Primer uporabe vam je pokazal, kako uporabiti ukaz MGET za učinkovito pridobivanje več odzivov API-ja, shranjenih na več ključih.