I comandi Zrevrange e Zrange sono in grado di recuperare i membri tra una gamma specificata di indici di un set ordinato memorizzato con una determinata chiave. Questi comandi accettano sia i valori dell'indice positivo che negativo durante l'interrogazione dei membri di un determinato intervallo. In questa guida, ci concentreremo sul comando zrevrange e sul suo utilizzo pratico."
Comando Redis Zrevrange
Il comando zrevrange viene utilizzato per interrogare i membri tra i valori indici minimi e massimi specifici di un set ordinato memorizzato con una determinata chiave. I membri vengono restituiti in ordine decrescente in base al loro valore di punteggio. Ogni volta che i membri multipli hanno lo stesso punteggio, gli elementi verranno ordinati lessicograficamente.
Sintassi
ZRevRange Sort_Set_key Start_Index end_index [WithScores]Sorted_set_key: Questo è l'ID univoco che identifica l'insieme ordinato nel Redis Data Store
start_index: L'indice iniziale dell'intervallo specificato
end_index: L'indice finale dell'intervallo specificato
[WithScores]: Questo è un argomento opzionale quando i membri specificati verranno restituiti con i loro punteggi.
Il comando restituirà una matrice di membri memorizzati tra l'intervallo di indice specificato. Se la Con punteggi È stato specificato l'argomento, i punteggi saranno inclusi nell'output.
Esempio: restituire i giocatori che hanno completato il maggior numero di livelli in un gioco online
Supponiamo che un gioco della comunità online in cui ogni giocatore è classificato in base al numero di livelli completati. Alla fine di ogni settimana, i primi tre giocatori ottengono regali bonus. Quindi, dobbiamo interrogare i primi 3 giocatori che hanno completato il maggior numero di livelli nel gioco. Possiamo assegnare il numero di livelli completati come il punteggio di un membro memorizzato in un set ordinato Redis.
Innanzitutto, aggiungeremo alcuni giocatori a un set ordinato chiamato Gamleaderboard.
Zadd Gamleaderboard 4 Player: 1Nell'esempio sopra, Giocatore: 1 ha completato 4 livelli, Giocatore: 5 ha completato 10 livelli e così via. Le informazioni di cui sopra su un giocatore sono state mappate su un set ordinato, come mostrato nel seguente.
Usiamo il comando zrevrange per interrogare tutti i membri il cui conteggio di livello completato è più alto e va in cima alla lista.
zrevrange gamleaderboard 0 4Come nell'illustrazione sopra, gli indici di set ordinati si diffondono da 0 a 4. Quindi, abbiamo specificato gli indici di avvio e fine come 0 e 4, rispettivamente, che dovrebbero idealmente restituire tutti i membri appartenenti al set ordinato identificato dalla chiave Gamleaderboard as puoi vedere, ha ordinato ai membri in modo tale che i migliori giocatori abbiano il maggior numero di livelli completati nel gioco.
Membri di query con i loro punteggi
Il comando zrange può essere utilizzato con l'argomento opzionale WithScores per visualizzare i valori del punteggio di ciascun giocatore nell'esempio sopra.
Produzione
Membri di query a partire dalla fine del set ordinato
In tutti gli esempi di cui sopra, abbiamo usato l'indice basato su 0 che conta dall'inizio del set ordinato. Possiamo specificare l'intervallo indice a partire dalla fine del set ordinato. Diciamo che dobbiamo interrogare i giocatori i cui punteggi sono i più bassi usando il comando zrevrange.
In questo caso, l'indice finale è stato specificato come -1, il che significa l'ultimo elemento. L'indice di avvio è -3. Quindi, interrogherà i membri fino al terzo membro dalla fine del set ordinato. Questo è molto chiaro se si utilizza la figura sopra, che mostra come gli indici possono essere utilizzati in entrambi i modi.
Il comando zrange invece di zrevrange
Il comando zrevrange è stato deprecato dalla versione 6 di Redis.2.0. Quindi, si consiglia di utilizzare il comando zrange con l'argomento rev opzionale, che si comporta come il comando zrevrange.
Conclusione
Per riassumere, il comando zrevrange viene utilizzato per interrogare i membri tra un indice minimo e massimo specificato da un set ordinato Redis memorizzato su una determinata chiave. Recupera i membri archiviati tra i valori dell'indice specificato in ordine inverso. Oltre all'ordinamento invertito dei membri, questo comando si comporta in modo simile al comando zrange. Come indicato sopra, ha una complessità temporale logaritmica che rende il comando abbastanza veloce da utilizzare in applicazioni in tempo reale in modo efficiente. Quindi, il comando zrevrange è l'ideale da utilizzare ogni volta che è necessario recuperare elementi in ordine decrescente da un set ordinato.