Ce face ZRANK / ZREVRANK
ZRANK întoarce poziția membrului în ordinea crescătoare a scorurilor, numărând de la 0. ZREVRANK numără de la scorul cel mai mare, deci ZREVRANK = 0 înseamnă „pe primul loc” într-un clasament.
Din Redis 7.2.0, opțiunea WITHSCORE întoarce și scorul, în aceeași comandă.
Parametri
| Parametru | Descriere |
|---|---|
member |
Membrul căutat. |
WITHSCORE |
Întoarce și scorul (Redis 7.2+). |
Ce returnează
Rangul ca (integer), sau (nil) dacă membrul nu există. Cu WITHSCORE: o listă [rang, scor].
Exemple
Exemplele de pe această pagină pornesc de la datele de mai jos. Rulează mai întâi acest cod, apoi exemplul.
ZADD clasament 1520 ana 1380 dan 1610 ioana 1200 elena
Exemplul 1: Pe ce loc este Ana?
În ordine crescătoare Ana are rangul 2; în clasament (descrescător) are rangul 1, adică locul al doilea.
ZRANK clasament ana
ZREVRANK clasament ana
ZREVRANK clasament mihai
Ieșire în redis-cli
127.0.0.1:6379> ZRANK clasament ana
(integer) 2
127.0.0.1:6379> ZREVRANK clasament ana
(integer) 1
127.0.0.1:6379> ZREVRANK clasament mihai
(nil)
Exemplul 2: Rang și scor deodată
Cu WITHSCORE primești ambele valori.
ZREVRANK clasament ioana WITHSCORE
Ieșire în redis-cli
127.0.0.1:6379> ZREVRANK clasament ioana WITHSCORE
1) (integer) 0
2) "1610"
Greșeli frecvente
- Rangul începe de la 0: pentru „locul” afișat utilizatorului adaugă 1.
- La scoruri egale, ordinea e alfabetică după membru, deci doi jucători cu același scor au ranguri diferite.
Comenzi înrudite
ZSCORE / ZMSCORE: Citește scorul unui membru dintr-un set sortat; ZMSCORE citește scorurile mai multor membri.ZRANGE: Întoarce membrii unui set sortat după poziție sau după scor (BYSCORE), crescător sau descrescător (REV), cu paginare (LIMIT).ZADD: Adaugă membri cu un scor numeric într-un set sortat sau le actualizează scorul; baza clasamentelor din Redis.