“Gli elenchi di Redis sono elenchi collegati di stringhe ordinate in sequenza. Le operazioni di Redis List sono estremamente efficaci poiché funzionano in costante complessità del tempo alla testa o alla coda. Redis è unico tra i negozi di valore chiave in quanto consente elenchi collegati, il che lo rende una struttura di lista collegata. La lunghezza massima di un elenco di Redis è di 2^32 - 1 (4.294.967.295) elementi, che contiene oltre 4 miliardi di elementi per elenco."
Il diagramma sopra descrive la disposizione di un elenco di Redis in termini di elementi e nel formato dell'indice, che svolge un ruolo vitale quando si utilizza il comando LPOS.
Breve panoramica del comando LPO
Il comando LPOS in Redis restituisce l'indice corrispondente degli elementi in un elenco. Inoltre, il comando LPOS scansiona un elenco dal primo indice all'ultimo indice fino a quando non viene trovato un elemento corrispondente per l'elemento specificato. Quando viene trovato l'elemento elenco specificato, viene restituito l'indice dell'elemento. Lo speciale Zero Il valore tornerà quando non viene trovata alcuna corrispondenza.
Una rapida revisione della sintassi del comando LPO
LOPS list_key list_element [rango rango] [conta num-matches] [lunghezza di maxlen]
Gli argomenti all'interno delle parentesi quadrate sono opzionali. Il comportamento normale del comando LPOS è di restituire l'indice della prima occorrenza dell'elemento specificato quando non vengono forniti argomenti opzionali.
IL RANGO l'opzione viene utilizzata per specificare quale istanza del valore restituire e può essere utile quando l'elenco è costituito da numerosi verificarsi dello stesso valore.
IL CONTARE L'opzione restituisce la posizione di più istanze dell'elemento elenco specificato.
IL Maxlen l'opzione viene utilizzata per limitare i confronti a un importo specificato. Inoltre, aiuta a limitare la quantità di tempo che un comando impiega per eseguire, specialmente quando è un grande elenco e quando si aspetta che una partita si trovi all'inizio.
Il comando LPO in azione
Creazione di un elenco di Redis chiamato "Names" con l'aiuto di RPUSH per dimostrare il comando LPOS come segue:
Rpush nomina "Jenny" "Leon" "Nick" "Jenny" "Heron" "Jenny" "Elle" "Heron"
Risultato
Ispezionando l'output dell'elenco tramite il comando seguente:
Nomi lrange 0 -1
Risultato
Utilizzando il comando LPOS per trovare la prima istanza di "Jenny" come segue:
Nomi LPO "Jenny"
Risultato
Come accennato, quando non vengono specificati argomenti opzionali, il comando LPOS restituisce la prima occorrenza dell'elemento.
L'opzione di rango
Questa opzione specifica l'istanza del valore da restituire ed è utile quando l'elenco contiene più occorrenze del valore identico.
L'elenco creato contiene molteplici occorrenze di Jenny E Airone. Nell'esempio precedente, poiché l'opzione di rango non è stata specificata, l'istanza del primo elemento è stata restituita come output.
Utilizzando l'opzione di rango per restituire la posizione della seconda istanza di Jenny Usando l'esempio seguente:
Nomi LPOs "Jenny" Rank 2
Risultato
Qui il RANGO L'opzione è specificata come 2. Quindi, il comando LPOS restituisce la posizione della seconda istanza dell'elemento elenco dato, che è 3. Se l'opzione di rango viene fornita come 1, dovrebbe restituire la prima istanza dell'elemento specificato; Se viene fornito 2, emette l'indice della seconda istanza; 3 produce l'indice della terza istanza e così via.
Se un grado è specificato superiore al numero di occorrenze, restituisce zero:
Nomi LPO "Jenny" Rank 20
Risultato
Inoltre, l'opzione di rango può essere utilizzata come rango negativo in cui funziona all'indietro dalla coda dell'elenco:
Nomi LPO "Jenny" Rank -1
Risultato
Qui, -1 viene utilizzato per restituire la posizione dell'ultima occorrenza del valore. In questo caso, la posizione di "Jenny" è il quinto indice.
L'opzione di conteggio
Questa opzione viene utilizzata per restituire la posizione di più istanze di un valore o elemento specificato:
Nomi LPO "Jenny" Conte 2
Risultato
Inoltre, questa opzione può essere utilizzata per restituire la posizione di tutte le istanze. Qui una persona può usare zero (0) per dire al comando di restituire tutte le partite secondo la necessità:
Nomi LPO "Jenny" conta 0
Risultato
L'opzione di conteggio può essere combinata con l'opzione di rango per restituire tutte le istanze da un certo punto come segue:
Nomi LPO "Jenny" Rank 2 Conteggio 0
Risultato
L'opzione Maxlen
Il maxlen viene utilizzato per limitare i confronti a un importo specificato ed è utile per limitare la quantità di tempo che il comando impiega per elaborare in tempi in cui l'elenco è grande e una persona deve trovare una corrispondenza anticipata.
Per esempio,
Nomi LPO "Jenny" Maxlen 2
Risultato
Qui quando viene trovata la corrispondenza, restituisce la posizione o l'indice dell'elemento dato.
Quando si utilizza un valore diverso:
Nomi LPO "Elle" Maxlen 2
Risultato
Come previsto, l'elemento "Elle" non si trova nel limite massimo specificato di 2.
Inoltre, una persona può usare zero (0) per specificare un numero illimitato di confronti,
Nomi LPO "Elle" Maxlen 0
Risultato
Conclusione
In sintesi, il comando LPOS svolge un ruolo importante nelle strutture di dati dell'elenco Redis quando si restituisce l'indice degli elementi di corrispondenza in un elenco. Il comando LPOS accetta vari argomenti che estendono il comportamento del comando. Nel complesso, funziona costantemente vicino alla testa e alla coda, oppure è specificata l'opzione Maxlen, il che è altamente efficiente.