Redis SCARD

Redis Scard



'Els conjunts de Redis són col·leccions no ordenades de cadenes que no contenen duplicats. Aquests són molt semblants als conjunts d'hash de Java, conjunts de Python, etc. El més important, les operacions fonamentals com afegir, eliminar i comprovar l'existència d'un membre són molt eficients perquè operen en la complexitat del temps O(1).

Membres d'un conjunt

Com s'ha esmentat, els conjunts de Redis contenen elements de cadena únics. Els conjunts de Redis no acceptaran els elements ja existents i seran ignorats. A més, un sol conjunt pot contenir fins a 4 mil milions de cordes úniques.









La naturalesa del conjunt Redis de tenir membres únics és útil en diversos casos d'ús del món real.



  • Capacitat de realitzar operacions de conjunt estàndard com unió, intersecció i diferència.
  • Seguiment de visitants únics a un lloc web
  • Representa les relacions d'entitats del món real

L'ordre SCARD

L'ordre SCARD, abreviatura de Set Cardinality, retorna el nombre de membres d'un conjunt emmagatzemat en una clau determinada. Funciona amb complexitat de temps O(1), el que significa que el temps que triga a executar l'ordre SCARD no depèn del nombre de membres del conjunt donat. Sempre es necessita un temps constant.





L'ordre SCARD té una sintaxi molt senzilla, tal com es mostra a continuació.

SCARD set_key

set_key: La clau del conjunt Redis



Aquesta ordre retorna un valor enter que és el nombre de membres del conjunt.

Cas d'ús: comptar els visitants únics d'un lloc web

Suposem que una empresa de pizzes 'YummyPizza' manté un lloc web anomenat yummypizza.com on la gent pot demanar pizza en línia. Per fer un seguiment de les seves vendes i base de clients, mantenen una base de dades Redis per emmagatzemar tots els visitants únics del lloc web cada mes.

Sempre que un usuari visiti el lloc web de YummyPizza, l'identificador d'usuari s'ha d'afegir a la base de dades de Redis. A més, no s'hauria d'afegir el mateix usuari a la base de dades. Per tant, l'estructura de dades ideal és el conjunt Redis, on els conjunts només emmagatzemen membres únics.

Suposem que cinc usuaris han visitat el lloc web i aquests membres s'afegeixen a la base de dades de Redis, tal com es mostra a continuació.

SADD YummyPizzaVisitants: Octubre John Mary Raza Stoinis Prince

Com era d'esperar, s'ha retornat l'enter 5, el que significa que els cinc membres s'afegeixen al conjunt emmagatzemat a la clau ' YummyPizzaVisitants: octubre.

Al final del dia, els administradors de l'empresa han de comprovar el nombre total de visitants únics al lloc web. Per tant, cal calcular la cardinalitat del conjunt. Afortunadament, l'ordre SCARD comentada anteriorment és útil en aquest tipus d'escenaris.

Executem l'ordre SCARD al conjunt emmagatzemat a la tecla ' YummyPizzaVisitants: octubre.

scard YummyPizzaVisitants: octubre

La sortida és 5, el que significa que cinc membres únics es troben al conjunt especificat. Aquesta ordre s'executa massa ràpid. No importa cinc membres o 50000 membres; el temps d'execució serà constant.

Suposem que la clau de conjunt especificada no existeix a la base de dades de Redis. Aleshores, la sortida serà 0, tal com es mostra a l'exemple següent. En aquest cas, especificarem una clau que no es troba a la base de dades.

scard NonExistingKey

Conclusió

En resum, el conjunt Redis és un candidat ideal per emmagatzemar cadenes úniques. Com s'ha comentat, el més important del conjunt de Redis és que la majoria de les operacions del conjunt associades triguen un temps constant a executar-se. L'ordre SCARD és una de les ordres de conjunt més utilitzades per calcular el nombre total de membres de conjunt per a un conjunt determinat emmagatzemat en una clau especificada. No importa quants membres de conjunt estiguin disponibles, aquesta ordre triga un temps constant a proporcionar la sortida. Com es mostra a l'últim exemple, si la clau de configuració no existeix, la sortida serà 0.