Maison >base de données >Redis >Partager des idées de classement multidimensionnel Redis

Partager des idées de classement multidimensionnel Redis

藏色散人
藏色散人avant
2023-04-21 16:01:381306parcourir

Cet article vous apporte des connaissances pertinentes sur Redis. Il partage principalement avec vous l'idée du classement multidimensionnel Redis. Les amis intéressés peuvent y jeter un œil ensemble. J'espère qu'il sera utile à tout le monde.

Partager des idées de classement multidimensionnel Redis

Description du problème

  1. Il est bien connu que redis zset est souvent utilisé dans les classements et peut être utilisé immédiatement, mais il présente l'inconvénient de ne prendre en charge que les classements unidimensionnels.

  2. Dans les projets réels, le classement unidimensionnel est en effet très peu pratique. Un exemple simple est le classement ambulant. L'exigence du produit est de classer en fonction du nombre d'étapes, du temps d'exécution et du nom de la personne. à droite.

  3. Ma solution consiste à convertir toutes les dimensions en nombres, puis à ajouter les nombres dans ces dimensions, afin que les classements multidimensionnels puissent être résolus.

Idées de solutions spécifiques

  1. Nombre d'étapes : il s'agit à l'origine d'un nombre et peut être ignoré

  2. Heure d'achèvement : l'heure d'achèvement stocke généralement un horodatage, et plus l'horodatage est tardif, plus l'achèvement est important Pour ce faire, plus l'heure d'achèvement est précoce, plus le classement est élevé, et plus l'heure d'achèvement est précoce, plus la valeur est élevée. Nous pouvons soustraire l'horodatage de l'heure d'achèvement de l'utilisateur d'un horodatage plus grand, de sorte que plus l'heure d'achèvement est précoce, plus la valeur est grande.
  3. Noms personnels : les noms des personnes sont généralement composés de caractères ou de lettres chinois. Les caractères chinois et les lettres sont tous deux des chaînes. Lorsque nous voulons trier, la première étape consiste à convertir les chaînes en chiffres. utilisez la fonction native de PHP mb_ord.

  4. Par exemple, le nombre d'étapes d'un utilisateur est de 10 000, le temps d'exécution (après calcul) est de 100 000 (un horodatage écrit aléatoirement) et le nom de la personne est de 500 (après calcul), qui est Zhang San ( écrit au hasard), nous pouvons obtenir une valeur de 10000,100500 (nombre d'étapes, temps d'exécution et nom de la personne additionnés).
  5. Dans le processus réel d'obtention de la valeur, nous pouvons supprimer le point décimal. Le nombre après le point décimal n'est utilisé que pour le classement.

    Apprentissage recommandé : "Tutoriel vidéo Redis"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer