Els conjunts ordenats (sorted sets) són una estructura de dades poderosa i flexible en Redis que combina les característiques dels conjunts (sets) i les llistes ordenades. Cada element en un conjunt ordenat està associat amb un valor de puntuació (score), que determina l'ordre dels elements dins del conjunt.

Conceptes Clau

  • Element: Un membre del conjunt ordenat.
  • Puntuació (Score): Un valor numèric associat a cada element que determina la seva posició en l'ordre.
  • Rang: La posició d'un element dins del conjunt ordenat, basada en la seva puntuació.

Comandes Bàsiques

Afegir Elements

Per afegir elements a un conjunt ordenat, utilitzem la comanda ZADD.

ZADD myzset 1 "element1" 2 "element2" 3 "element3"

Aquesta comanda crea un conjunt ordenat anomenat myzset amb tres elements, cadascun amb una puntuació específica.

Obtenir Elements

Per obtenir elements d'un conjunt ordenat, podem utilitzar diverses comandes:

  • ZRANGE: Retorna els elements dins d'un rang de posicions.
ZRANGE myzset 0 -1

Aquesta comanda retorna tots els elements del conjunt ordenat myzset.

  • ZRANGEBYSCORE: Retorna els elements dins d'un rang de puntuacions.
ZRANGEBYSCORE myzset 1 2

Aquesta comanda retorna els elements amb puntuacions entre 1 i 2.

Obtenir la Puntuació d'un Element

Per obtenir la puntuació d'un element específic, utilitzem la comanda ZSCORE.

ZSCORE myzset "element1"

Aquesta comanda retorna la puntuació de element1 dins del conjunt ordenat myzset.

Eliminar Elements

Per eliminar elements d'un conjunt ordenat, utilitzem la comanda ZREM.

ZREM myzset "element1"

Aquesta comanda elimina element1 del conjunt ordenat myzset.

Exemples Pràctics

Exemple 1: Classificació de Jugadors

Suposem que estem desenvolupant un joc i volem mantenir una classificació dels jugadors basada en els seus punts.

ZADD leaderboard 100 "player1" 200 "player2" 150 "player3"

Per obtenir els jugadors ordenats per puntuació:

ZRANGE leaderboard 0 -1 WITHSCORES

Exemple 2: Sistema de Reputació

Podem utilitzar conjunts ordenats per implementar un sistema de reputació on els usuaris guanyen o perden punts.

ZADD reputation 10 "user1" 20 "user2" 15 "user3"

Per augmentar la reputació d'un usuari:

ZINCRBY reputation 5 "user1"

Exercicis Pràctics

Exercici 1: Crear un Conjunt Ordenat

  1. Crea un conjunt ordenat anomenat students amb els següents elements i puntuacions:

    • "Alice" amb puntuació 85
    • "Bob" amb puntuació 90
    • "Charlie" amb puntuació 80
  2. Obté tots els elements del conjunt ordenat students.

Solució

ZADD students 85 "Alice" 90 "Bob" 80 "Charlie"
ZRANGE students 0 -1 WITHSCORES

Exercici 2: Actualitzar Puntuacions

  1. Augmenta la puntuació de "Alice" en 5 punts.
  2. Obté la nova puntuació de "Alice".

Solució

ZINCRBY students 5 "Alice"
ZSCORE students "Alice"

Errors Comuns i Consells

  • Error: Afegir elements sense puntuació.

    • Solució: Assegura't d'incloure una puntuació per a cada element quan utilitzis ZADD.
  • Error: Utilitzar comandes de conjunts ordenats en conjunts no ordenats.

    • Solució: Verifica que estàs treballant amb la estructura de dades correcta abans d'executar les comandes.

Conclusió

Els conjunts ordenats són una eina molt útil en Redis per gestionar col·leccions d'elements amb puntuacions associades. Amb les comandes adequades, podem afegir, obtenir, i manipular elements de manera eficient. En el proper mòdul, explorarem comandes i operacions avançades de Redis per aprofundir encara més en les capacitats d'aquesta base de dades.

© Copyright 2024. Tots els drets reservats