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:
Options de commande ZADD.
La commande ZADD accepte plusieurs options pour modifier son comportement et ses fonctionnalités. Ces options incluent:
Remarque: les options NX et XX sont conflictuelles. Par conséquent, vous ne pouvez utiliser qu'une seule option dans une seule commande.
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.