Redis MGET

Redis Mget



Objašnjenje Redis nizova

Nizovi su najosnovnija i temeljna struktura podataka koju uvodi Redis baza podataka. Redis nizovi su binarni sigurni nizovi bajtova. Oni su dosta slični normalnim nizovima dostupnim u programskim jezicima kao što su Java i c#.net. Ono što je najvažnije, Redis nizovi se mogu koristiti za pohranu gotovo svega što želite, kao što su nizovi, cijeli brojevi, serijalizirani JSON-ovi, XML-ovi i binarne vrijednosti. Budući da je vrsta podataka Redis string binarno sigurna, binarni objekti poput slika, videa i dokumenata mogu se lako pohraniti pomoću nizova. Osim toga, jedan Redis niz može držati podatke do 512 MB.







Nadalje, struktura podataka niza Redis obično se koristi u sljedećim slučajevima upotrebe:



  • Predmemoriranje
    • Pohrana sesije
    • API odgovori
    • HTML stranice
  • Brojač
  • Implementacija bitmapa i bitovne operacije

Najčešće korištene string operacije su SET, GET, MGET i SETNX. Naredbe INCRBY i INCRBYFLOAT obično se koriste za upravljanje brojačima implementiranim korištenjem Redis strukture podataka niza. U ovom vodiču detaljno je opisana naredba MGET.



Otkrivena naredba MGET

Naredba MGET koristi se za dohvaćanje vrijednosti zadanih Redis ključeva. Prihvaća jedan ili više ključeva kao argumente. Nadalje, naredba MGET radi na O(N) vremenskoj složenosti gdje je N navedeni broj ključeva. Sintaksa naredbe MGET je sljedeća:





MGET ključ [ ključ ... ]

Nakon izvršenja naredbe MGET, ona vraća niz vrijednosti koje su pohranjene na navedenim Redis ključevima. Ako ključ ne postoji, vraća posebnu vrijednost nula. Slično, ako ključ ne sadrži vrijednost niza, a nula vrijednost se vraća.

Slučaj upotrebe: dohvaćanje svih predmemoriranih API odgovora

Pretpostavimo scenarij u kojem se tip podataka niza Redis koristi za implementaciju predmemorije koja sadrži nedavne API odgovore. Koristimo naredbu SET za pohranjivanje nekih lažnih API odgovora u svrhu demonstracije.



postaviti dummyhost / kupaca 'ricky, bernard, mary, samuel, joe' postaviti dummyhost / dobavljači 'jimmy, jeremy, andrew, hera' postaviti dummyhost / fakture '{'invoices': [{'invoice_id': 1, 'invoice_payment': 1000}, {'invoice_id': 2, 'invoice_payment': 3400}]}'

Pohranjujemo nekoliko vrijednosti niza i serijalizirani JSON objekt pomoću tipa podataka niza Redis.

Sada upotrijebimo naredbu MGET za dohvaćanje svih odgovora u svakom API pozivu odjednom.

mget dummyhost / kupci dummyhost / dobavljači dummyhost / fakture

Izlaz:

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

dva ) 'jimmy, jeremy, andrew, hera'

3 ) '{' fakture ': [{' faktura_id ': 1, ' faktura_plaćanje ':1000}, {' faktura_id ': dva, ' faktura_plaćanje ':3400}]}'

Kao što se i očekivalo, vrijednosti u svakom ključu vraćaju se kao niz.

Određivanje nepostojećeg ključa

Kao što je spomenuto, naredba MGET vraća posebnu vrijednost nula kada je dostavljen nepostojeći ključ. Specificirajmo nepostojeći ključ pod nazivom 'nonexistingkey' za MGET naredbu i izvršimo prethodni primjer na sljedeći način:

mget dummyhost / kupci dummyhost / dobavljači dummyhost / fakture nepostojećiključ

Kao što vidite, zadnja vrijednost u nizu je nula koji je povezan s nepostojećim Redis ključem.

Sve u svemu, naredba MGET idealan je kandidat kada trebamo dohvatiti vrijednosti niza pohranjene na više ključeva u jednom pozivu, umjesto da pozivamo naredbu GET nekoliko puta.

Zaključak

Ukratko, naredba MGET djeluje na podatkovnoj strukturi niza Redis kako bi vratila vrijednosti pohranjene na više ključeva u jednom pozivu. Prihvaća jedan ili više Redis ključeva kao argumente. Kao što je istaknuto, naredba MGET radi u O(N) vremenskoj složenosti. Slučaj upotrebe vam je pokazao kako koristiti naredbu MGET za učinkovito dohvaćanje nekoliko API odgovora pohranjenih na više ključeva.