Redis Scard

Redis Scard
Les ensembles redis sont des collections de chaînes non ordonnées qui ne contiennent pas de doublons. Ceux-ci sont très similaires aux hashsets Java, aux ensembles de python, etc. Plus important encore, les opérations fondamentales comme l'ajout, la suppression et la vérification de l'existence d'un membre sont très efficaces car elles opèrent dans la complexité temporelle O (1).

Membres d'un ensemble

Comme mentionné, les ensembles Redis contiennent des éléments de chaîne uniques. Les articles déjà existants ne seront pas acceptés par les ensembles redis et seront ignorés. De plus, un seul ensemble peut contenir jusqu'à 4 milliards de cordes uniques.

La nature de Redis Set de tenir des membres uniques est utile dans plusieurs cas d'utilisation du monde réel.

  • Capacité à effectuer des opérations de set standard comme l'union, l'intersection et la différence.
  • Suivi des visiteurs uniques sur un site Web
  • Représenter les relations entités du monde réel

La commande de scard

La commande SCARD, abréviation de la cardinalité définie, renvoie le nombre de membres dans un ensemble stocké à une clé donnée. Il fonctionne en o (1) complexité temporelle, ce qui signifie que le temps que la commande Scard prend pour exécuter ne dépend pas du nombre de membres dans l'ensemble donné. Ça prend toujours un temps constant.

La commande SCARD a une syntaxe très simple, comme indiqué dans ce qui suit.

Scard set_key

set_key: La clé de l'ensemble redis

Cette commande renvoie une valeur entière qui est le nombre de membres dans l'ensemble.

Cas d'utilisation - Comptez les visiteurs uniques sur un site Web

Supposons qu'une société de pizza «Yummypizza» maintient un site Web appelé Yummipizza.com où les gens peuvent commander de la pizza en ligne. Pour garder une trace de leurs ventes et de leurs clients, ils maintiennent une base de données Redis pour stocker tous les visiteurs uniques du site Web chaque mois.

Chaque fois qu'un utilisateur visite le site Web Yummypizza, l'ID utilisateur doit être ajouté à la base de données Redis. De plus, le même utilisateur ne doit pas également être ajouté à la base de données. Ainsi, la structure de données idéale est l'ensemble redis, où les ensembles ne stockent que des membres uniques.

Supposons que cinq utilisateurs ont visité le site Web, et ces membres sont ajoutés à la base de données Redis, comme indiqué dans ce qui suit.

SADD YumMypizzavisiteurs: octobre John Mary Raza Stoinis Prince

Comme prévu, l'Integer 5 a été retourné, ce qui signifie que les cinq membres sont ajoutés à l'ensemble stocké chez Key "Yummypizzavisiteurs: octobre."

À la fin de la journée, les administrateurs de l'entreprise doivent vérifier le nombre total de visiteurs uniques sur le site Web. Ainsi, la cardinalité définie doit être calculée. Heureusement, la commande Scard discutée précédemment est utile dans ce type de scénario.

Exécutons la commande scard sur l'ensemble stocké sur Key "Yummypizzavisiteurs: octobre."

Scard Yummypizzavisiteurs: octobre

La sortie est de 5, ce qui signifie que cinq membres uniques sont dans l'ensemble spécifié. Cette commande s'exécute trop rapidement. Peu importe cinq membres ou 50000 membres; Le temps d'exécution sera constant.

Supposons que la touche définie spécifiée n'existe pas dans la base de données redis. Ensuite, la sortie sera 0, comme le montre l'exemple suivant. Dans ce cas, nous allons spécifier une clé qui n'est pas dans la base de données.

Scard non existant

Conclusion

Pour résumer, Redis Set est un candidat idéal pour stocker des cordes uniques. Comme discuté, la chose la plus importante à propos de l'ensemble redis est que la plupart des opérations d'ensemble associées prennent un temps constant pour exécuter. La commande SCARD est l'une des commandes SET les plus utilisées pour calculer le nombre total de membres d'ensemble pour un ensemble donné stocké sur une clé spécifiée. Peu importe le nombre de membres de l'ensemble disponibles, cette commande prend constamment du temps pour fournir la sortie. Comme indiqué dans le dernier exemple, si la touche définie n'existe pas, la sortie sera 0.