Redis SCARD

Redis Scard



'Redis-sets zijn ongeordende verzamelingen strings die geen duplicaten bevatten. Deze lijken erg op de Java HashSets, Python Sets, enz. Het belangrijkste is dat fundamentele bewerkingen zoals het toevoegen, verwijderen en controleren van het bestaan ​​van een lid zeer efficiënt zijn omdat ze werken in O(1) tijdcomplexiteit.”

Leden van een set

Zoals gezegd bevatten Redis-sets unieke stringitems. De reeds bestaande items worden niet geaccepteerd door Redis-sets en worden genegeerd. Bovendien kan één enkele set tot 4 miljard unieke snaren bevatten.









De aard van de Redis-set om unieke leden vast te houden, komt van pas in verschillende praktijksituaties.



  • Mogelijkheid om standaardsetbewerkingen uit te voeren, zoals Union, Intersection en Difference.
  • Unieke bezoekers van een website volgen
  • Real-world entiteitsrelaties vertegenwoordigen

Het SCARD-commando

Het SCARD-commando, een afkorting van Set Cardinality, retourneert het aantal leden in een set die is opgeslagen op een bepaalde sleutel. Het werkt in O(1) tijdcomplexiteit, wat betekent dat de tijd die het SCARD-commando nodig heeft om uit te voeren niet afhankelijk is van het aantal leden in de gegeven set. Het kost altijd een constante tijd.





Het SCARD-commando heeft een zeer eenvoudige syntaxis, zoals hieronder wordt getoond.

SCARD set_key

set_key: De sleutel van de Redis-set



Deze opdracht retourneert een geheel getal dat het aantal leden in de set is.

Use Case – Tel de unieke bezoekers van een website

Stel dat een pizzabedrijf 'YummyPizza' een website heeft met de naam yummypizza.com waar mensen online pizza kunnen bestellen. Om hun verkopen en klantenbestand bij te houden, houden ze een Redis-database bij om elke maand alle unieke bezoekers van de website op te slaan.

Telkens wanneer een gebruiker de YummyPizza-website bezoekt, moet de gebruikers-ID worden toegevoegd aan de Redis-database. Ook mag dezelfde gebruiker niet ook aan de database worden toegevoegd. De ideale datastructuur is dus de Redis-set, waarbij sets alleen unieke leden opslaan.

Laten we aannemen dat vijf gebruikers de website hebben bezocht en dat deze leden worden toegevoegd aan de Redis-database, zoals hieronder wordt weergegeven.

SADD YummyPizzaBezoekers:Oktober John Mary Raza Stoinis Prince

Zoals verwacht is het gehele getal 5 geretourneerd, wat betekent dat de vijf leden worden toegevoegd aan de set die is opgeslagen op sleutel ' YummyPizzaBezoekers: oktober.

Aan het eind van de dag moeten bedrijfsbeheerders het totale aantal unieke bezoekers van de website controleren. Dus de Set-kardinaliteit moet worden berekend. Gelukkig komt het eerder besproken SCARD-commando van pas in dit soort scenario's.

Laten we het SCARD-commando uitvoeren op de set die is opgeslagen op toets ' YummyPizzaBezoekers: oktober.

scard YummyPizzaBezoekers:oktober

De uitvoer is 5, wat betekent dat er vijf unieke leden in de opgegeven set zitten. Deze opdracht wordt te snel uitgevoerd. Het maakt niet uit vijf leden of 50000 leden; de uitvoeringstijd zal constant zijn.

Stel dat de opgegeven setsleutel niet bestaat in de Redis-database. De uitvoer is dan 0, zoals in het volgende voorbeeld wordt getoond. In dit geval gaan we een sleutel specificeren die niet in de database staat.

scard Niet Bestaande Sleutel

Conclusie

Samenvattend is de Redis-set een ideale kandidaat voor het opslaan van unieke snaren. Zoals besproken, is het belangrijkste van de Redis-set dat de meeste van de bijbehorende setbewerkingen een constante tijd nodig hebben om uit te voeren. Het SCARD-commando is een van de meest gebruikte set-commando's om het totale aantal setleden te berekenen voor een bepaalde set die is opgeslagen op een gespecificeerde toets. Het maakt niet uit hoeveel setleden er beschikbaar zijn, deze opdracht heeft constant tijd nodig om de uitvoer te leveren. Zoals getoond in het laatste voorbeeld, als de set-toets niet bestaat, is de uitvoer 0.