Redis Zcount

Redis Zcount

REDIS ORSEDED SET PACCHIO E RANNO

I set ordinati Redis sono la variante ordinata della struttura dei dati di set tipica. Ogni elemento set ordinato è associato a due proprietà speciali: rango e punteggio. Il valore del punteggio viene utilizzato per ordinare gli elementi impostati ordinati in ordine crescente. Inoltre, i punteggi possono essere ripetuti mentre i membri devono essere unici per un determinato set. Poiché vengono ordinati gli elementi impostati ordinati, le operazioni di aggiunta, aggiornamento e rimuovi sono più veloci. Inoltre, questa struttura dei dati consente di interrogare gli elementi in un intervallo per punteggio o valore di rango con grandi prestazioni.

Come mostrato nell'illustrazione precedente, la maggior parte dei comandi principali che operano su set di Redis hanno la complessità temporale di O (log (n)) che è più veloce.

Il comando zcount

Il comando ZCOUNT viene utilizzato per interrogare una serie di elementi impostati tra i punteggi specificati. Gli elementi restituiti sono ordinati dal punteggio più basso a quello più alto. Ogni volta che gli elementi multipli contengono gli stessi punteggi, quelli sono ordinati per ordine lessicografico. Questo comando ha anche la complessità del tempo O (log (n)) perché utilizza la proprietà di rango durante l'interruzione di una serie di elementi. Quindi, nessuna relazione lineare con il numero di elementi quando si misura il tempo di esecuzione.

Quanto segue è la sintassi del comando zcount:

Sintassi:

Zcount set_key minimo_score Maximum_score

set_key: La chiave del set ordinato Redis.

minimo_score: Il valore del punteggio più basso dell'intervallo specificato.

Maximum_score: Il valore di punteggio più alto dell'intervallo specificato.

Le estremità Min e Max dell'intervallo possono essere specificate in modi diversi. Ogni volta che non hai idea dei punteggi più bassi e più alti possibili nel set ordinato, è possibile utilizzare -INF e +INF. Idealmente recupera tutti gli elementi nel set ordinato.

Inoltre, i valori minimi e massimi specificati sono compresi l'intervallo. Se vuoi che uno di questi valori sia esclusivo, il "(" il personaggio può essere usato come in Zrangebycore comando.

Questo comando restituisce un valore intero che è il numero di elementi nell'intervallo specificato.

Caso d'uso: conta i giocatori con un conteggio d'oro tra un determinato intervallo

La struttura dei dati set ordinata in Redis è un candidato ideale per la memorizzazione dei dati della classifica. Supponiamo che uno scenario in cui un gioco online offre una quantità di oro per i suoi giocatori quando le missioni sono completate. Sulla base dell'importo dell'oro di ogni giocatore, è necessario implementare una classifica. Possiamo facilmente usare i set ordinati Redis per implementare tale classifica. L'importo dell'oro può essere mappato come punteggio di ciascun membro.

Creiamo un set ordinato Gamleaderboard e aggiungi alcuni giocatori con quantità d'oro come mostrato nel seguente. Il comando ZADD viene utilizzato per creare e aggiungere giocatori al set ordinato memorizzato nella chiave Gamleaderboard:

Zadd Gamleaderboard 1000 "Jack" 450 "Rexy" 3000 "John" 1600 "Mary" 450 "Rakesh"

Usiamo il comando zrangebycore per verificare se i membri vengono aggiunti e ordinati correttamente.

ZrangeByScore Gamleaderboard -inf +Inf

Come previsto, i membri vengono archiviati e ordinati per punteggi. Poiché "Rexy" e "Rakesh" hanno ottenuto gli stessi punteggi, sono ordinati lessicografici con "Rakesh" come membro principale della lista dei ritorni.

Contiamo il numero di elementi nel set ordinato usando il comando zcount:

ZCOUNT Gamleaderboard -inf +inf

Dato che abbiamo ottenuto cinque membri del set, il valore restituito è 5 perché l'intervallo è dall'infinito a +che copre l'intero set.

Specifichiamo un intervallo a partire da 1000 a 3000.

ZCOUNT Gamleaderboard 1000 3000

Prima ispezioniamo il nostro set con il comando zrangebycore come mostrato nel seguente:

ZrangeByScore Gamleaderboard -Inf +Inf WithScores

Ci sono tre membri nell'intervallo da 1000 a 3000. Poiché le 1000 e 3000 sono inclusi per impostazione predefinita, il precedente comando ZCOUNT dovrebbe restituire 3.

Usiamo il "(" personaggio per escludere i punteggi 1000 e 3000 con lo stesso esempio mostrato nell'esempio precedente:

ZCOUNT Gamleaderboard (1000 (3000

Poiché i punteggi 1000 e 3000 sono esclusi, l'unico membro sinistro è "Mary" con un punteggio 1600. Quindi, il conteggio restituito è 1.

Ogni volta che è necessario contare i membri tra una serie di punteggi, si consiglia di utilizzare il comando zcount che è immensamente più veloce.

Conclusione

In sintesi, il comando ZCOUNT viene utilizzato per contare il numero di elementi in un determinato intervallo di valori di punteggio. Ha una complessità del tempo O (log (n)). Come discusso, può essere utilizzato con valori minimi e massimi per definire un intervallo di punteggi come nel comando zrangebycore. I valori Min e Max sono inclusivi per impostazione predefinita. Come mostrato in precedenza, il "(" il carattere può essere usato per escludere i valori del punteggio. Nel complesso, il comando zcount è semplice da usare e funziona con grandi prestazioni.