redis
Ensembles triés
Recherche…
Introduction
Le type de données Sorted Set dans Redis est une version ordonnée du type de données Set. Un ensemble trié Redis consiste en une collection de membres uniques. Chaque membre de l'ensemble trié peut être considéré comme une paire composée du membre et d'un score. Le score est utilisé pour classer les membres dans l'ensemble par ordre croissant.
Syntaxe
- Touche ZADD [NX | XX] [CH] [INCR] membre du score [score du membre ...]
- Clé ZCARD
- Touche ZCOUNT min max
- Touche ZLEXCOUNT min max
Remarques
La documentation officielle des kits triés est disponible sur le site Redis.io .
Les ensembles triés sont parfois appelés ensembles zsets. Si vous utilisez la commande TYPE sur une clé de jeu triée, la valeur zset sera renvoyée.
Ajout d'éléments à un ensemble trié
Redis fournit la commande ZADD pour ajouter des éléments à un ensemble trié. La forme de base de la commande ZADD consiste à spécifier l'ensemble, l'élément à ajouter et son score. Par exemple, si je voulais construire un ensemble ordonné de mon plat préféré (du moins au plus grand), je pourrais utiliser l'un des deux:
zadd favs 1 apple
zadd favs 2 pizza
zadd favs 3 chocolate
zadd favs 4 beer
Ou bien:
zadd favs 1 apple 2 pizza 3 chocolate 4 beer
La fonction ZADD fonctionne de manière très similaire à la fonction SADD non triée. Le résultat de la commande ZADD est le nombre d'éléments ajoutés. Donc, après avoir créé mon set comme ci-dessus, si j'ai essayé de refaire de la bière ZADD:
ZADD favs 4 beer
J'obtiendrais un résultat 0, si je décidais que j'aimais mieux le chocolat que la bière, je pourrais exécuter:
ZADD favs 3 beer 4 chocolate
pour mettre à jour mes préférences, mais j'obtiendrais quand même un résultat de 0 puisque la bière et le chocolat sont déjà dans le jeu.
Comptage d'articles dans un ensemble trié
Redis fournit trois commandes pour compter les éléments dans un jeu trié: ZCARD, ZCOUNT, ZLEXCOUNT.
La commande ZCARD est le test de base pour la cardinalité d'un ensemble. (Il est analogue à la commande SCARD pour les ensembles.). ZCARD renvoie le nombre de membres d'un ensemble. Exécuter le code suivant pour ajouter des éléments à un ensemble:
zadd favs 1 apple
zadd favs 2 pizza
zadd favs 3 chocolate
zadd favs 4 beer
ZCard en cours d'exécution:
zcard favs
renvoie une valeur de 4.
Les commandes ZCOUNT et ZLEXCOUNT vous permettent de compter un sous-ensemble des éléments d'un ensemble trié en fonction d'une plage de valeurs. ZCOUNT vous permet de compter des éléments dans une plage particulière de scores et ZLEXCOUNT vous permet de compter le nombre d'éléments dans une plage lexographique particulière.
En utilisant notre ensemble ci-dessus:
zcount favs 2 5
renverrait un 3, car il y a trois articles (pizza, chocolat, bière) qui ont des scores compris entre 2 et 5 inclus.
ZLEXCOUNT est conçu pour fonctionner avec des ensembles où chaque élément a le même score, forçant et ordonnant les noms d'élément. Si nous avons créé un ensemble comme:
zadd favs 1 apple
zadd favs 1 pizza
zadd favs 1 chocolate
zadd favs 1 beer
nous pourrions utiliser ZLEXCOUNT pour obtenir le nombre d'éléments dans une plage lexographique particulière (ceci est fait par une comparaison par octets en utilisant la fonction memcpy).
zlexcount favs [apple (chocolate
retournerait 2, car deux éléments (pomme, bière) entrent dans la gamme des pommes (inclus) et du chocolat (exclusif). Nous pourrions alternativement faire les deux bouts inclus:
zlexcount favs [apple [chocolate
et obtenez le résultat 3.