Redis MGET

Redis Mget



Обяснени низове на Redis

Низовете са най-основната и фундаментална структура от данни, въведена от базата данни Redis. Низовете на Redis са двоично безопасни поредици от байтове. Те много приличат на нормални низове, налични в езици за програмиране като Java и c#.net. Най-важното е, че низовете на Redis могат да се използват за съхраняване на почти всичко, което искате, като низове, цели числа, сериализирани JSON, XML и двоични стойности. Тъй като низовият тип данни на Redis е двоично безопасен, бинарни обекти като изображения, видеоклипове и документи могат лесно да се съхраняват с помощта на низове. В допълнение, един низ на Redis може да съдържа данни до 512 MB.







Освен това структурата на данни от низ на Redis обикновено се използва в следните случаи на употреба:



  • Кеширане
    • Съхранение на сесии
    • API отговори
    • HTML страници
  • Брояч
  • Внедряване на bitmap и побитови операции

Най-често използваните операции с низове са SET, GET, MGET и SETNX. Командите INCRBY и INCRBYFLOAT обикновено се използват за управление на броячите, реализирани с помощта на низовата структура на данните на Redis. В този урок командата MGET е описана подробно.



Командата MGET е разкрита

Командата MGET се използва за извличане на стойностите на дадените Redis ключове. Той приема един или повече ключове като аргументи. Освен това командата MGET работи с времева сложност O(N), където N е посоченият брой ключове. Синтаксисът на командата MGET е както следва:





MGET ключ [ ключ ... ]

При изпълнение на командата MGET тя връща масив от стойности, които се съхраняват в посочените ключове на Redis. Ако ключът не съществува, той връща специалната стойност нула. По същия начин, ако ключът не съдържа стойност на низ, a нула стойността се връща.

Случай на употреба: Извличане на всички кеширани API отговори

Нека приемем сценарий, при който низовият тип данни на Redis се използва за внедряване на кеш, който съдържа последните отговори на API. Ние използваме командата SET, за да съхраним някои фиктивни API отговори за демонстрационни цели.



комплект dummyhost / клиенти 'рики, бернард, мери, самюел, джо' комплект dummyhost / доставчици 'джими, джереми, андрю, хера' комплект dummyhost / фактури '{'invoices': [{'invoice_id': 1, 'invoice_payment': 1000}, {'invoice_id': 2, 'invoice_payment': 3400}]}'

Ние съхраняваме няколко стойности на низ и сериализиран JSON обект, използвайки типа данни на низ Redis.

Сега нека използваме командата MGET, за да извлечем всички отговори във всяко извикване на API наведнъж.

mget dummyhost / клиенти dummyhost / доставчици dummyhost / фактури

Изход:

1 ) 'рики, бернард, мери, самюел, джо'

две ) 'джими, джереми, андрю, хера'

3 ) '{' фактури ': [{' invoice_id ': 1, ' фактура_плащане ':1000}, {' invoice_id ': две, ' фактура_плащане ':3400}]}'

Както се очаква, стойностите във всеки ключ се връщат като масив.

Посочване на несъществуващ ключ

Както споменахме, командата MGET връща специалната стойност нула когато е предоставен несъществуващ ключ. Нека да посочим несъществуващ ключ, наречен „nonexistingkey“ към командата MGET и да изпълним предишния пример, както следва:

mget dummyhost / клиенти dummyhost / доставчици dummyhost / фактури несъществуващ ключ

Както можете да видите, последната стойност в масива е нула който е свързан с несъществуващия Redis ключ.

Като цяло командата MGET е идеален кандидат, когато трябва да извлечем стойностите на низовете, съхранени в множество ключове, в едно извикване, вместо да извикваме командата GET няколко пъти.

Заключение

В обобщение, командата MGET работи със структурата на данни от низ на Redis, за да върне стойностите, съхранени в множество ключове в едно извикване. Той приема един или повече Redis ключове като аргументи. Както беше подчертано, командата MGET работи с времева сложност O(N). Случаят на използване ви показа как да използвате командата MGET за ефективно извличане на няколко отговора на API, съхранени в множество ключове.