Redis LPOS

Redis LPOS

“Las listas de Redis son listas vinculadas de cadenas ordenadas en secuencia. Las operaciones de la lista de Redis son extremadamente efectivas ya que se ejecutan en la complejidad de tiempo constante en la cabeza o la cola. Redis es único entre las tiendas de valor clave, ya que permite listas vinculadas, lo que lo convierte en una estructura de lista vinculada. La longitud máxima de una lista de Redis es 2^32 - 1 (4,294,967,295) elementos, que posee más de 4 mil millones de elementos por lista."

El diagrama anterior representa la disposición de un elemento de la lista Redis en cuanto a elementos y en el formato de índice, que juega un papel vital cuando se usa el comando LPOS.

Breve descripción del comando LPOS

El comando LPOS en Redis devuelve el índice de coincidencia de los elementos en una lista. Además, el comando LPOS escanea una lista desde el primer índice hasta el último índice hasta que se encuentre un elemento coincidente para el elemento especificado. Cuando se encuentra el elemento de lista especificado, se devuelve el índice del elemento. El especial NULO El valor volverá cuando no se encuentre coincidencia.

Una revisión rápida de la sintaxis del comando LPOS

LPOS list_key list_element [rango de rango] [Count Num-Matches] [MAXLEN LENGE]

Los argumentos dentro de los soportes cuadrados son opcionales. El comportamiento normal del comando LPOS es devolver el índice de la primera aparición del elemento especificado cuando no se dan argumentos opcionales.

El RANGO La opción se utiliza para especificar qué instancia del valor devolver y puede ser útil cuando la lista consta de numerosos ocurrencias del mismo valor.

El CONTAR La opción devuelve la posición de múltiples instancias del elemento de lista especificado.

El Maxlen La opción se usa para limitar las comparaciones a una cantidad especificada. Además, ayuda a limitar la cantidad de tiempo que toma un comando para ejecutar, especialmente cuando es una lista grande y cuando se espera que se encuentre una coincidencia desde el principio.

El comando lPOS en acción

Creación de una lista de Redis llamada "Nombres" con la ayuda del RPUSH para demostrar el comando LPOS de la siguiente manera:

Rpush nombra "Jenny" "Leon" "Nick" "Jenny" "Heron" "Jenny" "Elle" "Heron"

Resultado

Inspeccionar la salida de la lista a través del siguiente comando:

Nombres de lrange 0-1

Resultado

Usando el comando LPOS para encontrar la primera instancia de "Jenny" de la siguiente manera:

LPOS Nombres "Jenny"

Resultado

Como se mencionó, cuando no se especifican argumentos opcionales, el comando LPOS devuelve la primera ocurrencia del elemento.

La opción de rango

Esta opción especifica la instancia del valor que se devolverá y es útil cuando la lista contiene múltiples ocurrencias del valor idéntico.

La lista creada contiene múltiples ocurrencias de Jenny y Garza. En el ejemplo anterior, dado que no se especificó la opción de rango, la instancia del primer elemento se devolvió como salida.

Uso de la opción de rango para devolver la posición de la segunda instancia de Jenny Usando el siguiente ejemplo:

LPOS Nombres "Jenny" Rank 2

Resultado

Aquí el RANGO La opción se especifica como 2. Entonces, el comando LPOS devuelve la posición de la segunda instancia del elemento de lista dado, que es 3. Si la opción de rango se proporciona como 1, debe devolver la primera instancia del elemento especificado; Si se proporciona 2, genera el índice de la segunda instancia; 3 produce el índice de la tercera instancia, y así sucesivamente.

Si se especifica un rango más alto que el número de ocurrencias, regresa nulo:

LPOS Nombres "Jenny" Rango 20

Resultado

Además, la opción de rango se puede usar como un rango negativo donde funciona hacia atrás desde la cola de la lista:

LPOS Nombres "Jenny" Rank -1

Resultado

Aquí, -1 se usa para devolver la posición de la última aparición del valor. En este caso, la posición de "Jenny" es el quinto índice.

La opción de conteo

Esta opción se utiliza para devolver la posición de múltiples instancias de un valor o elemento especificados:

LPOS Nombres "Jenny" cuenta 2

Resultado

Además, esta opción se puede usar para devolver la posición de todas las instancias. Aquí una persona puede usar cero (0) para decirle al comando que devuelva todas las coincidencias según la necesidad:

LPOS Nombres "Jenny" cuenta 0

Resultado

La opción de recuento se puede combinar con la opción de rango para devolver todas las instancias desde cierto punto de la siguiente manera:

LPOS Nombres "Jenny" Rank 2 Count 0

Resultado

La opción Maxlen

El Maxlen se usa para limitar las comparaciones a una cantidad especificada y es útil para limitar la cantidad de tiempo que toma el comando para procesar en momentos en que la lista es grande, y una persona necesita encontrar una coincidencia temprano.

Por ejemplo,

LPOS Nombres "Jenny" Maxlen 2

Resultado

Aquí cuando se encuentra la coincidencia, devuelve la posición o índice del elemento dado.

Cuando se usa un valor diferente:

LPOS Nombres "Elle" Maxlen 2

Resultado

Como se esperaba, el elemento "Elle" no se encuentra dentro del límite máximo especificado de 2.

Además, una persona puede usar cero (0) para especificar un número ilimitado de comparaciones,

LPOS Nombres "Elle" Maxlen 0

Resultado

Conclusión

En resumen, el comando LPOS juega un papel importante en las estructuras de datos de la lista Redis al devolver el índice de los elementos coincidentes en una lista. El comando LPOS acepta varios argumentos que extienden el comportamiento del comando. En general, funciona constantemente cerca de la cabeza y la cola, o se especifica la opción Maxlen, que es altamente eficiente.