Redis lset

Redis lset
Una lista de Redis es una estructura de datos que contiene una secuencia de elementos de cadena en el orden de inserción. Se basa en la lista vinculada. Entonces, la inserción de un elemento en la cabeza y la cola se realiza en tiempo constante. El único inconveniente de las listas de Redis es que la consulta de elementos por un índice es un poco costoso, lo que lleva tiempo directamente proporcional al índice del elemento de acceso. La razón detrás de la implementación basada en listas vinculadas es hacer que la inserción de datos sea más rápida para una lista muy larga de elementos.

Las listas de Redis tienen indexación basada en 0. El primer elemento se designa como el 0th índice; el segundo está en el 1calle índice, etc. Acceder a elementos de cola con los índices es posible con índices negativos como el último elemento se indexa como -1, el elemento penúltimo es -2, y así sucesivamente.

Los elementos de la lista se pueden establecer en cualquier índice dado con el comando LSET, que se describe en la siguiente sección.

El comando lset

El comando LSET establece un elemento en el índice dado de una lista Redis almacenada en la clave especificada. Tiene la siguiente sintaxis simple:

Elemento de índice lset list_key

list_key: La clave de la lista de Redis.

índice: El índice donde necesita establecer un elemento.

elemento: El elemento de cadena se establecerá en el índice especificado.

Este comando devuelve una cadena simple "OK" si el elemento se ha establecido correctamente. Cada vez que encuentra un índice que está fuera del rango, el comando LSET devuelve un error.

Uno de los casos de uso más comunes de las listas de Redis es almacenar publicaciones en las redes sociales y sus actualizaciones para usuarios individuales. El comando LSET juega un papel importante allí, como se discutió en la siguiente sección.

Caso de uso: actualizar publicaciones en las redes sociales

Supongamos un evento en el que una empresa mantiene su propio sitio web de redes sociales con miles de usuarios que publican activamente publicaciones y estados. Han identificado que las listas de Redis son el candidato adecuado para contener estas publicaciones y estados donde ocurre la inserción frecuente, y las listas de Redis realizan inserción en constante tiempo.

Creemos una lista de Redis para una identificación de usuario determinada 100 que se utilizará para almacenar las publicaciones y mensajes de estado de ese usuario en particular. Usaremos el comando LPUSH para poner algunas publicaciones ficticias y mensajes de estado para el ID de usuario 100.

LPUSH Social-Media: Usuario: 100 "2022-08-01: Buen día para comenzar."
LPUSH Social-Media: Usuario: 100 "2022-08-05: Comenzó un nuevo trabajo en Linuxhint"
LPUSH Social-Media: Usuario: 100 "2022-08-06: Gran fiesta hoy"
LPUSH Social-Media: Usuario: 100 "2022-08-07: Bad Day!!!"

Producción

Suponga que el usuario con ID de usuario 100 actualizará una de sus publicaciones antiguas. Supongamos que la tercera publicación que ha publicado necesita algo de corrección. El comando lset puede lograr esto fácilmente, como se muestra en el siguiente.

Dado que el tercer elemento está en el índice 2 desde la cabeza. Lo actualizaremos de la siguiente manera:

LSET Social-Media: Usuario: 100 2 "Comenzó un nuevo rol como escritor en Linuxhint"

Producción

Como se esperaba, el comando se ejecutó correctamente y se actualizó el elemento en el segundo índice. Vamos a ver la lista de la siguiente manera:

Podemos hacer lo mismo especificando el índice desde la cola de la siguiente manera:

LSET Social -Media: Usuario: 100 -2 "Comenzó un nuevo rol como escritor en Linuxhint"

Como se esperaba, el tercer elemento se ha establecido en la nueva cadena "trabajo iniciado en Linuxhint".

Si especifica un índice que está fuera de rango, aumentará un error, como se muestra en lo siguiente:

LSET Social-Media: Usuario: 100 6 "El trabajo comenzó en Linuxhint"

Producción

Conclusión

El comando LSET establece un elemento de lista en un índice especificado a un elemento determinado de la lista Redis almacenada en una clave determinada. Dado que los índices de la lista Redis comienzan desde 0, es el primer elemento. El índice 1 es el segundo elemento de la lista, y así sucesivamente. Como se discutió, los índices de los elementos que comienzan desde la cola se pueden especificar usando números negativos como -1 es el último elemento, -2 es el elemento antes del último, y así sucesivamente. Siempre que se apruebe un índice inexistente, el comando LSET devolverá un error. Además, este comando devuelve una salida de cadena simple sobre la ejecución exitosa.