ZRANK / ZREVRANK în Redis & In-Memory Data Store

Întoarce poziția (rangul, de la 0) unui membru într-un set sortat, crescător (ZRANK) sau descrescător (ZREVRANK).

Sintaxă comandă
ZRANK key member [WITHSCORE]
ZREVRANK key member [WITHSCORE]

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.