Ce face ZRANGE
Fără opțiuni, ZRANGE folosește poziții (0 = scorul cel mai mic, -1 = cel mai mare), ca LRANGE. WITHSCORES adaugă scorurile în răspuns, alternând membru, scor.
Din Redis 6.2.0, ZRANGE înlocuiește mai multe comenzi vechi: REV inversează ordinea (fostul ZREVRANGE), BYSCORE interpretează start/stop ca scoruri (fostul ZRANGEBYSCORE), iar LIMIT offset count paginează rezultatele (doar cu BYSCORE sau BYLEX). Cu BYSCORE poți folosi -inf, +inf și ( pentru capete excluse.
Parametri
| Parametru | Descriere |
|---|---|
start stop |
Poziții (implicit) sau scoruri (cu BYSCORE). Cu REV și BYSCORE, întâi scorul mare, apoi cel mic. |
BYSCORE |
Interval după scor; (90 = strict mai mare ca 90. |
REV |
Ordine descrescătoare. |
LIMIT offset count |
Sare peste offset rezultate și întoarce maximum count. |
WITHSCORES |
Include scorurile în răspuns. |
Ce returnează
O listă cu membri (și scoruri, cu WITHSCORES). Scorurile apar ca șiruri.
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: Top 3 jucători
REV pune scorul cel mai mare primul.
ZRANGE clasament 0 2 REV WITHSCORES
Ieșire în redis-cli
127.0.0.1:6379> ZRANGE clasament 0 2 REV WITHSCORES
1) "ioana"
2) "1610"
3) "ana"
4) "1520"
5) "dan"
6) "1380"
Exemplul 2: Jucătorii cu scor între 1300 și 1600
Intervalul de scor este inclusiv la ambele capete.
ZRANGE clasament 1300 1600 BYSCORE
ZRANGE clasament (1380 +inf BYSCORE
Ieșire în redis-cli
127.0.0.1:6379> ZRANGE clasament 1300 1600 BYSCORE
1) "dan"
2) "ana"
127.0.0.1:6379> ZRANGE clasament (1380 +inf BYSCORE
1) "ana"
2) "ioana"
Exemplul 3: Paginare descrescătoare după scor
Cu REV și BYSCORE, intervalul se scrie de la mare la mic. LIMIT 1 2 sare peste primul rezultat.
ZRANGE clasament +inf -inf BYSCORE REV LIMIT 1 2
Ieșire în redis-cli
127.0.0.1:6379> ZRANGE clasament +inf -inf BYSCORE REV LIMIT 1 2
1) "ana"
2) "dan"
Greșeli frecvente
- Cu
REVșiBYSCORE,ZRANGE k 0 100 BYSCORE REVnu întoarce nimic: trebuieZRANGE k 100 0 BYSCORE REV. LIMITfărăBYSCOREsauBYLEXdă eroare de sintaxă.ZREVRANGEșiZRANGEBYSCOREsunt depreciate din Redis 6.2.0; în cod nou foloseșteZRANGEcu opțiuni.
Comenzi înrudite
ZADD: Adaugă membri cu un scor numeric într-un set sortat sau le actualizează scorul; baza clasamentelor din Redis.ZRANK / ZREVRANK: Întoarce poziția (rangul, de la 0) unui membru într-un set sortat, crescător (ZRANK) sau descrescător (ZREVRANK).ZCOUNT / ZCARD: ZCOUNT numără membrii cu scorul într-un interval; ZCARD întoarce numărul total de membri.LRANGE: Întoarce elementele unei liste dintre doi indici, inclusiv; LRANGE key 0 -1 întoarce toată lista.