Les commandes ZrevRange et Zrange sont capables de récupérer les membres entre une gamme spécifiée d'index d'un ensemble trié stocké à une clé donnée. Ces commandes acceptent à la fois les valeurs d'index positives et négatives lors de l'interrogation aux membres d'une plage donnée. Dans ce guide, nous nous concentrerons sur la commande ZrevRange et son utilisation pratique."
Commande redis zrevrange
La commande ZrevRange est utilisée pour interroger les membres entre les valeurs d'index minimum et maximum spécifiées d'un ensemble trié stocké à une clé donnée. Les membres sont retournés par ordre décroissant en fonction de leur valeur de score. Chaque fois que les multiples membres ont le même score, les éléments seront ordonnés lexicographiquement.
Syntaxe
Zrevrange trid_set_key start_index end_index [withscores]trimed_set_key: Il s'agit de l'ID unique qui identifie l'ensemble trié dans le magasin de données Redis
start_index: L'indice de départ de la plage spécifiée
end_index: L'indice de fin de la plage spécifiée
[Withscores]: Il s'agit d'un argument facultatif lorsque des membres spécifiés seront retournés avec leurs scores.
La commande renvoie un tableau de membres stockés entre la plage d'index spécifiée. Si la Avec des sols L'argument a été spécifié, les scores seront inclus dans la sortie.
Exemple: Renvoyez les joueurs qui ont terminé le plus de niveaux dans un jeu en ligne
Supposons un jeu communautaire en ligne où chaque joueur est classé en fonction du nombre de niveaux terminés. À la fin de chaque semaine, les trois meilleurs joueurs obtiennent des cadeaux bonus. Par conséquent, nous devons interroger les 3 meilleurs joueurs qui ont terminé le plus de niveaux dans le jeu. Nous pouvons attribuer le nombre de niveaux terminés comme le score d'un membre stocké dans un ensemble trié Redis.
Tout d'abord, nous ajouterons quelques joueurs à un ensemble trié appelé Jeu de jeu.
Zadd GameLeaderboard 4 Player: 1Dans l'exemple ci-dessus, Joueur: 1 a terminé 4 niveaux, Joueur: 5 a terminé 10 niveaux, et ainsi de suite. Les informations ci-dessus concernant un joueur ont été mappées à un ensemble trié, comme indiqué dans ce qui suit.
Utilisons la commande ZRevRange pour interroger tous les membres dont le nombre de niveaux terminés est plus élevé et va en haut de la liste.
ZrevRange GameLeader 0 4Comme dans l'illustration ci-dessus, les index de jeu triés se propagent de 0 à 4. Par conséquent, nous avons spécifié les index de début et de fin comme 0 et 4, respectivement, qui devraient idéalement renvoyer tous les membres appartenant à l'ensemble trié identifié par la clé GameLeaderboard AS Vous pouvez voir, il a commandé aux membres d'une manière que la plupart des joueurs ont le plus grand nombre de niveaux terminés dans le jeu.
Interroger les membres avec leurs scores
La commande ZRange peut être utilisée avec l'argument facultatif WithScores pour afficher les valeurs de score de chaque joueur dans l'exemple ci-dessus.
Sortir
Les membres de requête à partir de la fin de l'ensemble trié
Dans tous les exemples ci-dessus, nous avons utilisé l'indice basé sur 0 qui compte à partir du début de l'ensemble trié. Nous pouvons spécifier la plage d'index à partir de la fin de l'ensemble trié également. Disons que nous devons interroger les joueurs dont les scores sont les plus bas en utilisant la commande ZrevRange.
Dans ce cas, l'indice final a été spécifié comme -1, ce qui signifie le dernier élément. L'indice de démarrage est -3. Par conséquent, il interrogera les membres jusqu'au 3ème membre de la fin de l'ensemble trié. Ceci est très clair si vous utilisez la figure ci-dessus, qui montre comment les index peuvent être utilisés dans les deux sens.
La commande zRange au lieu de ZrevRange
La commande zrevrange a été dépréciée de la version 6 redis 6.2.0. Par conséquent, il est recommandé d'utiliser la commande ZRange avec l'argument Rev facultatif, qui se comporte de la même manière que la commande ZrevRange.
Conclusion
Pour résumer, la commande ZrevRange est utilisée pour interroger les membres entre un minimum et un maximum d'index spécifiés d'un ensemble trié Redis stocké à une clé donnée. Il récupère les membres stockés entre les valeurs d'index spécifiées dans l'ordre inverse. Outre l'ordre inversé des membres, cette commande se comporte similaire à la commande ZRange. Comme indiqué ci-dessus, il a une complexité temporelle logarithmique qui rend la commande assez rapide à utiliser dans les applications en temps réel efficacement. Par conséquent, la commande ZrevRange est idéale à utiliser chaque fois que vous avez besoin de récupérer des éléments dans l'ordre descendant à partir d'un ensemble trié.