Blog Navicat

Introduction rapide aux Sets dans Redis 8 Septembre 2023 par Robert Gravelle

Redis prend en charge plusieurs types de données pour stocker des collections d'éléments. Ceux-ci incluent des listes (list), des ensembles (set) et des hachages (hash). L'article de blog de la semaine dernière couvrait le type de données « List » et mettait en évidence certaines des principales commandes permettant de les gérer. Dans la suite aujourd'hui, nous porterons notre attention sur le type « Set ». Dans Redis, un Set est similaire à une liste sauf qu'il ne conserve aucun ordre spécifique pour ses éléments et que chaque élément doit être unique. Cet article passera en revue certaines des principales commandes de gestion des ensembles, à la fois via redis-cli et en utilisant Navicat for Redis.

Créé un Set

Dans Redis, nous pouvons créer un Set en utilisant la commande SADD qui ajoute les membres spécifiés à la clé :

SADD key member [member ...]

Comme mentionné précédemment, chaque élément doit être unique. Pour cette raison, les membres spécifiés qui font déjà partie de l’ensemble sont ignorés. Si la clé n'existe pas, un nouvel ensemble est créé et les membres uniques spécifiés sont ajoutés. Si la clé existe déjà ou s'il ne s'agit pas d'un ensemble, une erreur est renvoyée.

Voici la commande pour créer un ensemble « vehicles » :

SADD vehicles "Infiniti"         // 1
SADD vehicles "Mazda"            // 1
SADD vehicles "Ford" "Mercedes"    // 2
SADD vehicles "Porsche" "Mercedes" // 1

Notez que la commande SADD renvoie le nombre de membres ajoutés dans cette instruction, et non la taille de l'ensemble. On voit dans la dernière ligne qu'un seul élément a été ajouté car il y avait déjà une valeur "Mercedes".

Créé un Set dans Navicat

Dans l'éditeur Navicat for Redis , les valeurs de SET sont représentées sous forme d'éléments. Cliquer sur le bouton points de suspension [...] à droite de l'élément ouvre un éditeur spécial dans lequel vous pouvez saisir des éléments d'ensemble individuels :

vehicles_set_in_navicat_editor (69K)

Cliquer sur le bouton Appliquer ajoute le nouvel ensemble ou élément. Navicat supprime automatiquement les valeurs en double.

Supprimé des membres d'un Set

Nous pouvons supprimer des membres d'un Set en utilisant la commande SREM :

SREM key member [member ...]
SREM vehicles "Mazda" "Mercedes" // 2
SREM vehicles "Dodge" // 0

Semblable à la commande SADD, SREM renvoie le nombre de membres supprimés.

Dans l'éditeur Navicat, nous pouvons supprimer n'importe quel élément d’un Set en le sélectionnant et en cliquant sur le bouton Supprimer [-] situé sous les valeurs de l'élément :

delete_button_in_navicat_editor (25K)

Vérifier qu'une valeur existe

Pour vérifier qu'un membre fait partie d'un Set, on peut utiliser la commande SISMEMBER :

SISMEMBER key member

Si le membre fait partie de l'ensemble, cette commande renvoie 1 ; sinon, il renvoie 0 :

SISMEMBER vehicles "Infiniti" // 1
SISMEMBER vehicles "Alfa Romeo" // 0

Afficher un Set

Pour afficher tous les membres qui existent dans un Set, nous pouvons utiliser la commande SMEMBERS :

SMEMBERS key

Voyons ce que contient actuellement le set « vehicles » :

SMEMBERS vehicles
// returns "Infiniti", "Ford", "Porsche"

Fusionner des Sets

On peut combiner des Sets très facilement en utilisant la commande SUNION :

SUNION key [key ...]

Chaque argument de SUNION représente un Set que nous souhaitons fusionner dans un ensemble plus grand. Notez que tous les membres dupliqués seront supprimés afin de conserver l’unicité des éléments.

Supposons que nous ayons un autre Set nommé more_vehicles qui contenait les valeurs « Corvette » et « Alfa Romeo ». Nous pourrions afficher tous les membres des ensembles de véhicules et de more_vehicles comme suit :

SUNION vehicles more_vehicles
// "Infiniti", "Ford", "Porsche", "Corvette", "Alfa Romeo"

Conclusion

Cet article de blog a mis en évidence certaines des principales commandes de gestion des Set dans Redis, à la fois via redis-cli et en utilisant Navicat for Redis.

Vous souhaitez essayer Navicat for Redis. Télécharger les ici . La version d'essai est entièrement fonctionnelle pendant 14 jours.

Partager
Archives du blog