Redis SCARD

Redis Scard



'Redis-sæt er uordnede samlinger af strenge, der ikke indeholder dubletter. Disse minder meget om Java HashSets, Python Sets osv. Vigtigst af alt er grundlæggende operationer som tilføjelse, fjernelse og kontrol af eksistensen af ​​et medlem meget effektive, fordi de opererer i O(1) tidskompleksitet.'

Medlemmer af et sæt

Som nævnt indeholder Redis-sæt unikke strengemner. De allerede eksisterende elementer vil ikke blive accepteret af Redis-sæt og vil blive ignoreret. Desuden kan et enkelt sæt rumme op til 4 milliarder unikke strenge.









Redis-sættets karakter af at have unikke medlemmer er praktisk i adskillige brugssager i den virkelige verden.



  • Evne til at udføre standardsætoperationer som Union, Intersection og Difference.
  • Sporing af unikke besøgende på et websted
  • Repræsenter entitetsrelationer i den virkelige verden

SCARD-kommandoen

SCARD-kommandoen, forkortelse for Set Cardinality, returnerer antallet af medlemmer i et sæt, der er gemt ved en given nøgle. Det fungerer i O(1) tidskompleksitet, hvilket betyder, at den tid, SCARD-kommandoen tager at udføre, ikke afhænger af antallet af medlemmer i det givne sæt. Det tager altid en konstant tid.





SCARD-kommandoen har en meget simpel syntaks, som vist i det følgende.

SCARD set_key

sæt_nøgle: Nøglen til Redis-sættet



Denne kommando returnerer en heltalsværdi, som er antallet af medlemmer i sættet.

Use Case – Tæl de unikke besøgende på et websted

Antag, at et 'YummyPizza'-pizzafirma vedligeholder et websted kaldet yummypizza.com, hvor folk kan bestille pizza online. For at holde styr på deres salg og kundebase vedligeholder de en Redis-database til at gemme alle de unikke besøgende på hjemmesiden hver måned.

Når en bruger besøger YummyPizza-webstedet, skal bruger-id'et tilføjes til Redis-databasen. Den samme bruger bør heller ikke føjes til databasen. Så den ideelle datastruktur er Redis-sættet, hvor sæt kun gemmer unikke medlemmer.

Lad os antage, at fem brugere har besøgt hjemmesiden, og disse medlemmer tilføjes til Redis-databasen, som vist i det følgende.

SADD YummyPizzaBesøgende:Oktober John Mary Raza Stoinis Prince

Som forventet er heltal 5 blevet returneret, hvilket betyder, at de fem medlemmer føjes til sættet, der er gemt på tasten ' YummyPizzaVisitors:Oktober.

I slutningen af ​​dagen skal virksomhedens administratorer kontrollere det samlede antal unikke besøgende på hjemmesiden. Så sæt-kardinaliteten skal beregnes. Heldigvis er den tidligere omtalte SCARD-kommando nyttig i denne type scenarie.

Lad os udføre SCARD-kommandoen på sættet, der er gemt på tasten ' YummyPizzaVisitors:Oktober.

scard YummyPizzaVisitors:Oktober

Outputtet er 5, hvilket betyder, at fem unikke medlemmer er i det specificerede sæt. Denne kommando udføres for hurtigt. Det er lige meget fem medlemmer eller 50000 medlemmer; udførelsestiden vil være konstant.

Antag, at den angivne sætnøgle ikke findes i Redis-databasen. Så vil outputtet være 0, som vist i det følgende eksempel. I dette tilfælde skal vi angive en nøgle, der ikke er i databasen.

scard NonExistingKey

Konklusion

For at opsummere er Redis sæt en ideel kandidat til lagring af unikke strenge. Som nævnt er det vigtigste ved Redis-sæt, at de fleste af de tilknyttede sæt-operationer tager konstant tid at udføre. SCARD-kommandoen er en af ​​de mest brugte sætkommandoer til at beregne det samlede antal sætmedlemmer for et givet sæt, der er gemt på en specificeret nøgle. Uanset hvor mange sætmedlemmer der er tilgængelige, tager denne kommando konstant tid at levere output. Som vist i det sidste eksempel, hvis sætnøglen ikke eksisterer, vil outputtet være 0.