Redis SCARD

Redis Scard



'Redis-uppsättningar är oordnade samlingar av strängar som inte innehåller några dubbletter. Dessa påminner mycket om Java HashSets, Python Sets, etc. Viktigast av allt, grundläggande operationer som att lägga till, ta bort och kontrollera existensen av en medlem är mycket effektiva eftersom de fungerar i O(1) tidskomplexitet.'

Medlemmar av en uppsättning

Som nämnts innehåller Redis-set unika strängobjekt. De redan befintliga objekten kommer inte att accepteras av Redis-set och kommer att ignoreras. Dessutom kan en enda uppsättning innehålla upp till 4 miljarder unika strängar.









Redis-setets karaktär av att ha unika medlemmar kommer väl till pass i flera verkliga användningsfall.



  • Förmåga att utföra standardoperationer som Union, Intersection och Difference.
  • Spåra unika besökare till en webbplats
  • Representera verkliga entitetsrelationer

Kommandot SCARD

SCARD-kommandot, förkortning för Set Cardinality, returnerar antalet medlemmar i en uppsättning lagrad vid en given nyckel. Det fungerar i O(1) tidskomplexitet vilket innebär att tiden som SCARD-kommandot tar att utföra inte beror på antalet medlemmar i den givna uppsättningen. Det tar alltid en konstant tid.





Kommandot SCARD har en mycket enkel syntax, som visas i följande.

SCARD set_key

set_key: Nyckeln till Redis-setet



Detta kommando returnerar ett heltalsvärde som är antalet medlemmar i uppsättningen.

Användningsfall – Räkna de unika besökarna på en webbplats

Anta att ett 'YummyPizza'-pizzaföretag har en webbplats som heter yummypizza.com där folk kan beställa pizza online. För att hålla koll på sin försäljning och kundbas upprätthåller de en Redis-databas för att lagra alla unika besökare på webbplatsen varje månad.

Närhelst en användare besöker YummyPizzas webbplats ska användar-id:t läggas till i Redis-databasen. Samma användare bör inte heller läggas till i databasen. Så den ideala datastrukturen är Redis-uppsättningen, där uppsättningar endast lagrar unika medlemmar.

Låt oss anta att fem användare har besökt webbplatsen, och dessa medlemmar läggs till Redis-databasen, som visas i följande.

SADD YummyPizzaBesökare:Oktober John Mary Raza Stoinis Prince

Som väntat har heltal 5 returnerats, vilket innebär att de fem medlemmarna läggs till i uppsättningen som lagras vid nyckel ' YummyPizzaBesökare:Oktober.

I slutet av dagen måste företagsadministratörer kontrollera det totala antalet unika besökare på webbplatsen. Så Set-kardinaliteten måste beräknas. Lyckligtvis kommer det tidigare diskuterade SCARD-kommandot väl till pass i den här typen av scenario.

Låt oss köra SCARD-kommandot på uppsättningen lagrad vid tangenten ' YummyPizzaBesökare:Oktober.

scard YummyPizzaVisitors:Oktober

Utgången är 5, vilket betyder att fem unika medlemmar finns i den angivna uppsättningen. Detta kommando körs för snabbt. Det spelar ingen roll fem medlemmar eller 50 000 medlemmar; utförandetiden kommer att vara konstant.

Antag att den angivna setnyckeln inte finns i Redis-databasen. Då blir utgången 0, som visas i följande exempel. I det här fallet kommer vi att ange en nyckel som inte finns i databasen.

scard NonExistingKey

Slutsats

Sammanfattningsvis är Redis set en idealisk kandidat för att lagra unika strängar. Som diskuterats är det viktigaste med Redis set att de flesta associerade setoperationer tar en konstant tid att utföra. SCARD-kommandot är ett av de mest använda setkommandona för att beräkna det totala antalet setmedlemmar för en given uppsättning lagrad på en specificerad nyckel. Oavsett hur många uppsättningsmedlemmar som är tillgängliga, tar det här kommandot konstant tid att tillhandahålla utdata. Som visas i det sista exemplet, om inställningsnyckeln inte existerar, blir utdata 0.