Comment utiliser Redis Trised Set

Comment utiliser Redis Trised Set
Les ensembles triés sont l'un des types de données les plus précieux et avancés dans Redis. Les ensembles triés sont très similaires aux ensembles car ils contiennent tous les deux des séquences de chaîne non répétées. Cependant, contrairement aux ensembles standard, les ensembles triés incluent une valeur de score associée à chaque membre.

La valeur du score leur permet d'être triée dans un ordre spécifique. Chaque membre d'un ensemble trié doit être unique mais peut partager une valeur de score avec plusieurs membres.

Dans ce tutoriel, vous apprendrez tout sur les ensembles triés dans Redis et comment vous pouvez les utiliser dans vos bases de données.

Assurez-vous que vous avez installé un serveur Redis existant et en cours d'exécution pour suivre ce tutoriel.

Création d'ensembles triés

Pour créer un ensemble trié dans Redis, utilisez la commande zadd dans la CLI redis. La commande zadd prend trois arguments principaux.

Le premier est le nom de la clé qui contient l'ensemble trié.

Le deuxième argument contient la partition du membre qui est ajoutée à l'ensemble trié.

L'argument final et troisième est la valeur réelle du membre dans l'ensemble trié.

Remarque: l'ordre des arguments est important car chacun représente les valeurs dictées ci-dessus.

Jetez un œil à l'exemple ci-dessous.

127.0.0.1: 6379> Zadd Captains 1 "Jonathan Archer"

La commande ci-dessus crée un ensemble trié contenant les noms des capitaines Star Trek. Dans l'exemple ci-dessus, la valeur de «Jonathan Archer» a un score de 1.

La commande renvoie une valeur entière qui indique le nombre total de membres ajoutés à l'ensemble trié.

Redis ne vous limite pas à l'ajout d'un seul membre à l'ensemble. Vous pouvez ajouter plusieurs valeurs. Par exemple:

Zadd Captains 2 "Carol Freeman" 4 "Christopher Pike" 1 "Jean-Luc Picard" 3 "Kathryn Janeway."

Vous remarquerez deux choses principales dans la commande ci-dessus:

  1. Premièrement, le score pour chaque membre du tri ne doit pas être séquentiel. Vous pouvez attribuer un score de 100 à un membre même si les autres scores ne sont définis à aucune valeur.
  2. Deuxièmement, un membre peut détenir un score similaire à un autre membre dans l'ensemble trié.

Options de commande ZADD.

La commande ZADD accepte plusieurs options pour modifier son comportement et ses fonctionnalités. Ces options incluent:

  1. NX - L'option NX indique à la commande ZADD pour ajouter de nouveaux membres. Cette option empêche la commande de mettre à jour les membres existants dans l'ensemble spécifié.
  2. D'un autre côté, XX - L'option XX ne mettra qu'à mettre à jour les membres existants et à ne pas ajouter de nouveaux membres à l'ensemble.

Remarque: les options NX et XX sont conflictuelles. Par conséquent, vous ne pouvez utiliser qu'une seule option dans une seule commande.

  1. CH - L'option CH indique à Zadd d'inclure le nombre d'éléments modifiés. Par défaut, ZADD ne renverra que le nombre d'éléments nouvellement ajoutés. La commande ZADD renverra le nombre d'éléments ajoutés et d'éléments mis à jour à l'aide de l'option CH.
  2. Incr - L'option Incrat indique à la commande ZADD d'incrémenter le score d'un membre. Si le membre spécifié n'existe pas dans l'ensemble trié, Redis le créera automatiquement et définira l'incrément comme score.

Remarque: L'utilisation de la commande zincrby au lieu de ZADD avec l'option RECHERCHE est recommandée. Ils remplissent tous les deux la même fonction.

Recherchez les membres d'un ensemble trié

Pour récupérer les membres d'un ensemble trié dans Redis, utilisez la commande ZRange. La commande prend le nom de la clé et une gamme spécifique des membres que vous souhaitez récupérer. Les valeurs de plage des membres de l'ensemble triées sont des indices basés sur les zéro. Par conséquent, le premier membre de l'ensemble est à l'index 0.

Par exemple, pour récupérer les membres de l'index 0 à 10, entrez la commande:

127.0.0.1: 6379> Capitaines de Zrange 0 10

La commande renvoie les membres dans cette plage spécifiée. L'exemple de sortie est comme indiqué ci-dessous:

1) "Jonathan Archer"
2) "Carol Freeman"
3) "Kathryn Janeway"
4) "Christopher Pike"
5) "Jean-Luc Picard"

Dans les cas où l'ensemble trié contient des membres avec une valeur de score similaire, les membres seront triés dans l'ordre lexicographique.

Si vous souhaitez obtenir les membres dans l'ensemble et leurs scores associés, vous pouvez utiliser l'option WithScore.

127.0.0.1: 6379> Capitaines de Zrange 0 10 avec des scores

L'exemple de sortie de la commande ci-dessus est comme indiqué.

1) "Jonathan Archer"
2) "1"
3) "Carol Freeman"
4) "2"
5) "Kathryn Janeway"
6) "3"
7) "Christopher Pike"
8) "4"
9) "Jean-Luc Picard"
10) "5"

Supposons que vous souhaitiez obtenir les membres dans l'ordre inverse. N'oubliez pas que la commande ZRange renvoie les membres dans l'ordre croissant uniquement. Pour obtenir l'ordre inverse, utilisez la commande zRevRange.

127.0.0.1: 6379> Capitaines Zrevrange 0 10

La commande entraînera un ordre inverse.

1) "Jean-Luc Picard"
2) "Christopher Pike"
3) "Kathryn Janeway"
4) "Carol Freeman"
5) "Jonathan Archer"

Vous pouvez également inclure l'option WithOptions dans la commande zrevRange.

1) "Jean-Luc Picard"
2) "5"
3) "Christopher Pike"
4) "4"
5) "Kathryn Janeway"
6) "3"
7) "Carol Freeman"
8) "2"
9) "Jonathan Archer"
10) "1"

La valeur résultante contiendra les scores dans l'ordre inverse.

Supprimer les membres d'un ensemble trié

Pour supprimer les membres d'un ensemble trié, utilisez la commande ZREM.

127.0.0.1: 6379> Capitaines de Zrem "Jonathan Archer"

La commande renvoie une valeur entière affichant le nombre d'éléments supprimés de l'ensemble trié.

Pour supprimer les éléments par plage, utilisez la commande zrembyRange.

127.0.0.1: 6379> Capitaines de ZremRangebylex [A [Z

La commande supprimera les valeurs en fonction de leur gamme Lexico.

Pour supprimer les membres sur leur plage de score, utilisez la commande ZremRangeBysCore.

127.0.0.1: 6379> ZremRangeByscore Captains 0 5

Obtenez des informations sur les ensembles triés

Utilisez la commande zcard pour récupérer le nombre de membres dans un ensemble trié donné.

127.0.0.1: 6379> Capitaines de Zcard

La valeur de retour est un entier montrant le nombre d'éléments dans un ensemble.

Si vous souhaitez obtenir le nombre de membres dans une plage spécifique, utilisez la commande zCount.

127.0.0.1: 6379> Captains ZCount 0 10

De même, la commande renvoie une valeur entière.

Pour obtenir le score d'un membre spécifique dans un ensemble trié, utilisez la commande Zscore:

127.0.0.1: 6379> Capitaines de Zscore "Carol Freeman"
"2"

La commande renvoie le score du membre s'il existe.

Conclusion

Cet article a discuté de la façon de commencer et d'utiliser des ensembles triés dans Ruby. Gardez à l'esprit qu'il y a plus dans les ensembles triés que discuté dans ce guide. Considérez la documentation pour en savoir plus.