recherche
Maisonbase de donnéesRedisComment utiliser les ensembles triés Redis pour les classements et les requêtes de plage?

Cet article démontre l'utilisation d'ensembles triés Redis pour une implémentation efficace de classement. Il met en évidence les avantages de performance par rapport aux listes, aux tables de hachage et aux bases de données relationnelles, mettant l'accent sur la complexité O (log n) pour les opérations clés. S

Comment utiliser les ensembles triés Redis pour les classements et les requêtes de plage?

Comment utiliser des ensembles triés Redis pour les classements et les requêtes de plage

Les ensembles triés Redis sont idéaux pour mettre en œuvre des classements car ils stockent intrinsèquement les membres (joueurs, utilisateurs, etc.) avec des scores associés (leur classement de classement). La commande ZADD vous permet d'ajouter ou de mettre à jour les membres et leurs scores efficacement. Les requêtes de plage sont ensuite effectuées à l'aide de commandes comme ZRANGE , ZREVRANGE , ZRANGEBYSCORE et ZREVRANGEBYSCORE .

Par exemple, disons que nous construisons un classement pour un jeu. Nous pouvons représenter les joueurs utilisant leurs ID en tant que membres et leurs scores comme scores de l'ensemble trié.

  • Ajouter des joueurs: ZADD leaderboard 100 player1 200 player2 50 player3 Cela ajoute trois joueurs au classement avec des scores 100, 200 et 50 respectivement.
  • Récupération des 5 meilleurs joueurs: ZREVRANGE leaderboard 0 4 WITHSCORES Cela récupère les 5 meilleurs joueurs (avec des scores) dans l'ordre descendant (score le plus élevé en premier).
  • Récupération des joueurs avec des scores comprises entre 100 et 200: ZRANGEBYSCORE leaderboard 100 200 WITHSCORES cela renvoie tous les joueurs avec des scores dans la plage spécifiée.

Avantages de performance de l'utilisation des ensembles triés Redis pour les classements

Les ensembles triés Redis offrent des avantages de performance significatifs par rapport aux autres structures de données pour les classements en raison de leur structure interne optimisée. Voici une comparaison:

  • Par rapport aux listes: les listes nécessitent une itération de toute la liste pour trouver un rang ou une gamme de scores spécifique, ce qui entraîne une complexité O (n) pour les opérations de récupération, où n est le nombre de joueurs. Les ensembles triés, en revanche, utilisent une structure de données de liste de sauts permettant une complexité O (log n) pour la plupart des opérations, ce qui les rend beaucoup plus rapidement pour les grands classements.
  • Par rapport aux tables de hachage: bien que les tables de hachage puissent stocker efficacement les scores, ils n'ont pas la fonctionnalité intégrée pour les requêtes de portée et le tri. La mise en œuvre de la fonctionnalité de classement à l'aide de tables de hachage nécessiterait des algorithmes de tri complexes dans votre code d'application, conduisant à une latence plus élevée et à une complexité accrue.
  • Par rapport aux bases de données relationnelles: les bases de données relationnelles sont généralement plus lentes pour les mises à jour et les requêtes de classement en temps réel par rapport à Redis. Les frais généraux des transactions de base de données, de l'indexation et de la communication réseau ont un impact significatif sur les performances. Redis, étant un magasin de données en mémoire, fournit des opérations de lecture et d'écriture extrêmement rapides.

Mise à jour efficace des scores et des rangs dans un classement de réglage trié redis

La mise à jour des scores et des classements dans un ensemble trié Redis est très efficace grâce à la commande ZADD . ZADD met à jour atomiquement le score d'un membre. Si le membre n'existe pas, il ajoute le membre avec le score donné; S'il existe, il met à jour son score. Cela garantit la cohérence des données même sous une concurrence élevée.

Par exemple, pour mettre à jour le score de Player1 à 150: ZADD leaderboard 150 player1

Pour les scénarios où vous devez incrémenter ou décrémenter les scores, la commande ZINCRBY est plus efficace: ZINCRBY leaderboard 50 player1 Cela augmente le score de Player1 de 50.

Pour maintenir efficacement un grand classement, considérez des stratégies comme:

  • Données de données: distribuez le classement sur plusieurs instances Redis pour gérer un nombre massif de joueurs.
  • À l'aide d'une structure de données distincte pour les données moins fréquemment accessibles: par exemple, stockez des informations détaillées sur les joueurs dans une base de données distincte et conservez uniquement le score dans l'ensemble trié Redis.

Implémentation de pagination et de filtrage sur un classement de réglage trié redis

Les ensembles triés Redis fournissent un excellent support pour la pagination et le filtrage. La pagination est facilement réalisée à l'aide des commandes ZRANGE et ZREVRANGE avec clause LIMIT :

ZREVRANGE leaderboard 0 9 WITHSCORES récupère les 10 meilleurs joueurs.
ZREVRANGE leaderboard 10 19 WITHSCORES récupère les joueurs classés 11-20.

Le filtrage peut être effectué à l'aide ZRANGEBYSCORE et le combiner avec LIMIT de pagination:

ZRANGEBYSCORE leaderboard 100 200 WITHSCORES LIMIT 0 10 récupère les 10 meilleurs joueurs avec des scores entre 100 et 200.

Pour les critères de filtrage plus complexes (par exemple, le filtrage par plusieurs attributs), vous devrez peut-être pré-comparer ou maintenir des ensembles triés séparés en fonction de différents critères de filtrage ou utiliser une combinaison de structures de données redis et de logique côté application. Par exemple, vous pouvez utiliser des ensembles triés séparés pour différents modes de jeu ou régions.

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
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Redis: améliorer les performances et l'évolutivité des applicationsRedis: améliorer les performances et l'évolutivité des applicationsApr 17, 2025 am 12:16 AM

Redis améliore les performances et l'évolutivité des applications en mettant en cache des données, implémentant le verrouillage distribué et la persistance des données. 1) Données de cache: utilisez Redis pour mettre en cache les données fréquemment accessibles pour améliorer la vitesse d'accès aux données. 2) Verrouillage distribué: utilisez Redis pour implémenter les verrous distribués pour assurer la sécurité du fonctionnement dans un environnement distribué. 3) Persistance des données: assurer la sécurité des données via les mécanismes RDB et AOF pour éviter la perte de données.

Redis: explorer son modèle de données et sa structureRedis: explorer son modèle de données et sa structureApr 16, 2025 am 12:09 AM

Le modèle et la structure de données de Redis incluent cinq types principaux: 1. String: Utilisé pour stocker des données de texte ou binaires et prend en charge les opérations atomiques. 2. Liste: collection d'éléments commandés, adapté aux files d'attente et aux piles. 3. Ensemble: Éléments uniques non ordonnés Ensemble, soutenant le fonctionnement de l'ensemble. 4. Ensemble ordonné (triset): un ensemble unique d'éléments avec des scores, adaptés aux classements. 5. Table du hachage (hachage): une collection de paires de valeurs clés, adaptées au stockage d'objets.

Redis: classifier son approche de base de donnéesRedis: classifier son approche de base de donnéesApr 15, 2025 am 12:06 AM

Les méthodes de base de données de Redis incluent les bases de données en mémoire et le stockage de valeurs de clé. 1) Redis stocke les données en mémoire, lit et écrit rapidement. 2) Il utilise des paires de valeurs clés pour stocker des données, prend en charge des structures de données complexes telles que les listes, les collections, les tables de hachage et les collections ordonnées, adaptées aux caches et aux bases de données NoSQL.

Pourquoi utiliser Redis? Avantages et avantagesPourquoi utiliser Redis? Avantages et avantagesApr 14, 2025 am 12:07 AM

Redis est une puissante solution de base de données car elle offre des performances rapides, de riches structures de données, une haute disponibilité et une évolutivité, des capacités de persistance et un large éventail de support écosystémique. 1) Performances extrêmement rapides: les données de Redis sont stockées en mémoire et ont des vitesses de lecture et d'écriture extrêmement rapides, adaptées aux applications élevées de concurrence et de latence faible. 2) Rich Structure de données: prend en charge plusieurs types de données, tels que des listes, des collections, etc., qui conviennent à une variété de scénarios. 3) Haute disponibilité et évolutivité: prend en charge la réplication maître-esclave et le mode de cluster pour atteindre la haute disponibilité et l'évolutivité horizontale. 4) Persistance et sécurité des données: la persistance des données est obtenue via RDB et AOF pour garantir l'intégrité et la fiabilité des données. 5) Support d'écosystème et communautaire large: avec un énorme écosystème et une communauté active,

Comprendre le nosql: caractéristiques clés de RedisComprendre le nosql: caractéristiques clés de RedisApr 13, 2025 am 12:17 AM

Les caractéristiques clés de Redis incluent la vitesse, la flexibilité et le support de structure de données riche. 1) Speed: Redis est une base de données en mémoire, et les opérations de lecture et d'écriture sont presque instantanées, adaptées à la gestion du cache et de la session. 2) Flexibilité: prend en charge plusieurs structures de données, telles que des chaînes, des listes, des collections, etc., qui conviennent au traitement des données complexes. 3) Prise en charge de la structure des données: fournit des chaînes, des listes, des collections, des tables de hachage, etc., qui conviennent aux différents besoins commerciaux.

Redis: identifier sa fonction principaleRedis: identifier sa fonction principaleApr 12, 2025 am 12:01 AM

La fonction centrale de Redis est un système de stockage et de traitement de données en mémoire haute performance. 1) Accès aux données à grande vitesse: Redis stocke les données en mémoire et fournit une vitesse de lecture et d'écriture au niveau microseconde. 2) Rich Structure de données: prend en charge les chaînes, les listes, les collections, etc., et s'adapte à une variété de scénarios d'application. 3) Persistance: Persister les données sur le disque via RDB et AOF. 4) Publier l'abonnement: peut être utilisé dans les files d'attente de messages ou les systèmes de communication en temps réel.

Redis: un guide des structures de données populairesRedis: un guide des structures de données populairesApr 11, 2025 am 12:04 AM

Redis prend en charge une variété de structures de données, notamment: 1. String, adapté au stockage des données à valeur unique; 2. Liste, adaptée aux files d'attente et aux piles; 3. SET, utilisé pour stocker des données non dégonflées; 4. Ensemble ordonné, adapté aux listes de classement et aux files d'attente de priorité; 5. Table du hachage, adapté au stockage des données d'objet ou structurées.

Comment implémenter Redis CounterComment implémenter Redis CounterApr 10, 2025 pm 10:21 PM

Redis Counter est un mécanisme qui utilise le stockage de la paire de valeurs de clés Redis pour implémenter les opérations de comptage, y compris les étapes suivantes: création de clés de comptoir, augmentation du nombre, diminution du nombre, réinitialisation du nombre et objet de comptes. Les avantages des compteurs Redis comprennent une vitesse rapide, une concurrence élevée, une durabilité et une simplicité et une facilité d'utilisation. Il peut être utilisé dans des scénarios tels que le comptage d'accès aux utilisateurs, le suivi des métriques en temps réel, les scores de jeu et les classements et le comptage de traitement des commandes.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

Adaptateur de serveur SAP NetWeaver pour Eclipse

Adaptateur de serveur SAP NetWeaver pour Eclipse

Intégrez Eclipse au serveur d'applications SAP NetWeaver.

Listes Sec

Listes Sec

SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

VSCode Windows 64 bits Télécharger

VSCode Windows 64 bits Télécharger

Un éditeur IDE gratuit et puissant lancé par Microsoft