5 votes

calculs "globaux" pour les ensembles triés

Avec un ensemble trié, existe-t-il un moyen facile de calculer des valeurs "globales", par exemple la moyenne, la médiane, le maximum, le minimum, etc. de tous les scores de l'ensemble, ou dois-je toujours extraire les scores et faire les calculs moi-même (ce qui est un peu pénible...) ?

6voto

plus- Points 9661

Vous pouvez tout faire avec ZCARD et ZRANGE (avec le score bien sûr).

  • Min : ZRANGE sur l'indice 0
  • Max : ZRANGE sur l'indice max (valeur ZCARD)
  • Médiane : ZRANGE sur l'indice médian (ZCARD/2)
  • Moyenne : vous pouvez enregistrer le total de tous les scores dans un autre compteur et le diviser par la valeur de la ZCARD.

1voto

seppo0010 Points 3758

Il n'y a pas de méthode simple pour le faire. Il n'existe pas beaucoup de commandes d'agrégation.

Edit : si c'est ce que vous devez faire, peut-être que sorted set (ou même redis) n'est pas la voie à suivre. Pouvez-vous préciser votre cas d'utilisation ?

0voto

seppo0010 Points 3758

Vous pouvez ajouter une autre clé avec la somme de tous les scores dans l'ensemble trié. Vous devrez la mettre à jour manuellement (dans un multi/exec probablement) à chaque insertion/mise à jour/suppression de l'ensemble trié. Ensuite, vous pouvez obtenir la valeur et la diviser par la ZCARD pour obtenir la moyenne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X