Il valore del punteggio consente loro di essere ordinati in un ordine specifico. Ogni membro di un set ordinato deve essere unico ma può condividere un valore del punteggio con più membri.
In questo tutorial, imparerai tutto sui set ordinati in Redis e su come usarli nei tuoi database.
Assicurati di avere un server Redis esistente installato ed in esecuzione per seguire questo tutorial.
Creazione di set ordinati
Per creare un set ordinato in Redis, utilizzare il comando ZADD nella CLI Redis. Il comando ZADD prende tre argomenti principali.
Il primo è il nome della chiave che contiene il set ordinato.
Il secondo argomento contiene il punteggio del membro che viene aggiunto al set ordinato.
L'argomento finale e terzo è il valore effettivo del membro nel set ordinato.
Nota: l'ordine degli argomenti conta poiché ciascuno rappresenta i valori dettati sopra.
Dai un'occhiata all'esempio mostrato di seguito.
127.0.0.1: 6379> Capitani Zadd 1 "Jonathan Archer"
Il comando sopra crea un set ordinato contenente i nomi dei capitani di Star Trek. Nell'esempio sopra, il valore di "Jonathan Archer" ha un punteggio di 1.
Il comando restituisce un valore intero che indica il numero totale di membri aggiunti al set ordinato.
Redis non ti limita ad aggiungere un singolo membro al set. Puoi aggiungere più valori. Per esempio:
Zadd Capitani 2 "Carol Freeman" 4 "Christopher Pike" 1 "Jean-Luc Picard" 3 "Kathryn Janeway."
Noterai due cose principali nel comando sopra:
Opzioni di comando ZADD.
Il comando ZADD accetta più opzioni per modificarne il comportamento e la funzionalità. Queste opzioni includono:
Nota: le opzioni NX e XX sono in conflitto. Quindi, puoi usare solo un'opzione in un singolo comando.
Nota: si consiglia l'utilizzo del comando zincrby anziché Zadd con l'opzione. Entrambi svolgono la stessa funzione.
Prendi i membri da un set ordinato
Per recuperare i membri di un set ordinato in Redis, utilizzare il comando zrange. Il comando prende il nome della chiave e un intervallo specifico dei membri che si desidera recuperare. I valori di intervallo dei membri del set ordinato sono indici a base zero. Quindi, il primo membro nel set è all'indice 0.
Ad esempio, per recuperare i membri dall'indice da 0 a 10, immettere il comando:
127.0.0.1: 6379> Capitani Zrange 0 10
Il comando restituirà i membri entro quell'intervallo specificato. L'output di esempio è come mostrato di seguito:
1) "Jonathan Archer"
2) "Carol Freeman"
3) "Kathryn Janeway"
4) "Christopher Pike"
5) "Jean-Luc Picard"
Nei casi in cui il set ordinato contiene membri con un valore di punteggio simile, i membri saranno ordinati in ordine lessicografico.
Se si desidera ottenere i membri all'interno del set e dei loro punteggi associati, è possibile utilizzare l'opzione WithScores.
127.0.0.1: 6379> Capitani Zrange 0 10 WithScores
L'output di esempio dal comando sopra è come mostrato.
1) "Jonathan Archer"
2) "1"
3) "Carol Freeman"
4) "2"
5) "Kathryn Janeway"
6) "3"
7) "Christopher Pike"
8) "4"
9) "Jean-Luc Picard"
10) "5"
Supponiamo di voler ottenere i membri in ordine inverso. Ricorda che il comando zrange restituisce i membri solo in ordine crescente. Per ottenere l'ordine inverso, utilizzare il comando zrevrange.
127.0.0.1: 6379> Capitani Zrevrange 0 10
Il comando comporterà un ordine inverso.
1) "Jean-Luc Picard"
2) "Christopher Pike"
3) "Kathryn Janeway"
4) "Carol Freeman"
5) "Jonathan Archer"
Puoi anche includere l'opzione WithOptions nel comando zrevrange.
1) "Jean-Luc Picard"
2) "5"
3) "Christopher Pike"
4) "4"
5) "Kathryn Janeway"
6) "3"
7) "Carol Freeman"
8) "2"
9) "Jonathan Archer"
10) "1"
Il valore risultante conterrà i punteggi in ordine inverso.
Rimuovere i membri da un set ordinato
Per rimuovere i membri da un set ordinato, utilizzare il comando zrem.
127.0.0.1: 6379> Capitani Zrem "Jonathan Archer"
Il comando restituirà un valore intero che mostra il numero di elementi rimossi dal set ordinato.
Per rimuovere gli articoli per intervallo, utilizzare il comando zrembyrange.
127.0.0.1: 6379> Capitani zremrangebylex [A [Z
Il comando rimuoverà i valori in base al loro intervallo di lexico.
Per rimuovere i membri sul loro intervallo di punteggio, utilizzare il comando zremrangebycore.
127.0.0.1: 6379> Capitani ZremrangeBycore 0 5
Ottieni informazioni sui set ordinati
Usa il comando ZCARD per recuperare il numero di membri in un determinato set.
127.0.0.1: 6379> Capitani ZCARD
Il valore di ritorno è un numero intero che mostra il numero di elementi in un set.
Se si desidera ottenere il numero di membri all'interno di un intervallo specifico, usa il comando ZCOUNT.
127.0.0.1: 6379> Capitani ZCOUNT 0 10
Allo stesso modo, il comando restituisce un valore intero.
Per ottenere il punteggio di un membro specifico all'interno di un set ordinato, utilizzare il comando ZScore:
127.0.0.1: 6379> Capitani ZScore "Carol Freeman"
"2"
Il comando restituirà il punteggio del membro se esiste.
Conclusione
Questo articolo ha discusso di come iniziare e utilizzare i set ordinati in Ruby. Tieni presente che ci sono altri set ordinati di quanto non discusso in questa guida. Considera la documentazione per saperne di più.