Redis LSET

Redis LSET
Uma lista Redis é uma estrutura de dados que contém uma sequência de elementos de string na ordem de inserção. É baseado na lista vinculada. Então, a inserção de um elemento na cabeça e na cauda é realizada em tempo constante. A única desvantagem das listas de Redis é que a consulta de elementos por um índice é um pouco cara, o que leva tempo diretamente proporcional ao índice do elemento de acesso. A razão por trás da implementação baseada na lista vinculada é tornar a inserção de dados mais rapidamente para uma lista muito longa de itens.

As listas Redis têm indexação baseada em 0. O primeiro elemento é designado como 0º índice; o segundo está no 1st índice, e assim por diante. O acesso a elementos da cauda com os índices é possível com índices negativos como o último elemento é indexado como -1, o penúltimo elemento é -2 e assim por diante.

Os elementos da lista podem ser definidos em qualquer índice com o comando LSET, que é descrito na seção a seguir.

O comando lset

O comando LSET define um elemento no índice fornecido de uma lista Redis armazenada na chave especificada. Tem a seguinte sintaxe simples:

List list_key elemento

list_key: A chave da lista Redis.

índice: O índice onde você precisa definir um elemento.

elemento: O elemento da string a ser definido no índice especificado.

Este comando retorna uma string simples "ok" se o elemento foi definido corretamente. Sempre que encontra um índice que está fora do intervalo, o comando LSET retorna um erro.

Um dos casos de uso mais comuns das listas Redis é armazenar postagens de mídia social e suas atualizações para usuários individuais. O comando LSET desempenha um papel importante lá, conforme discutido na seção a seguir.

Caso de uso - Atualize postagens de mídia social

Vamos supor um evento em que uma empresa mantém seu próprio site de mídia social com milhares de usuários postando ativamente postagens e status. Eles identificaram que as listas Redis são o candidato adequado para manter esses posts e status onde a inserção frequente acontece, e as listas Redis realizam inserção em tempo constante.

Vamos criar uma lista Redis para um determinado ID do usuário 100 que será usado para armazenar as postagens e mensagens de status desse usuário em particular. Usaremos o comando lpush para colocar algumas postagens dummy e mensagens de status para o usuário ID 100.

LPUSH Social-Media: Usuário: 100 "2022-08-01: bom dia para começar."
LPUSH Social-Media: Usuário: 100 "2022-08-05: iniciou um novo emprego no Linuxhint"
LPUSH Social-Media: Usuário: 100 "2022-08-06: grande festa hoje"
LPUSH Social-Media: Usuário: 100 "2022-08-07: Bad Day!!!"

Saída

Suponha que o usuário com ID do usuário 100 atualize uma de suas postagens antigas. Suponha que o terceiro post que ele postou precisa de alguma correção. O comando LSET pode conseguir facilmente, como mostrado no seguinte.

Como o terceiro elemento está no índice 2 da cabeça. Vamos atualizá -lo da seguinte forma:

LSET Social-Media: Usuário: 100 2 "Começou um novo papel como escritor em Linuxhint"

Saída

Como esperado, o comando foi executado com sucesso e o elemento no segundo índice foi atualizado. Vamos verificar a lista da seguinte maneira:

Podemos fazer o mesmo especificando o índice da cauda da seguinte forma:

LSET Social -Media: Usuário: 100 -2 "Começou um novo papel como escritor em Linuxhint"

Como esperado, o terceiro elemento foi definido para a nova string “Job iniciado em Linuxhint”.

Se você especificar um índice que estiver fora do intervalo, ele levantará um erro, como mostrado no seguinte:

LSET Social-Media: Usuário: 100 6 "Trabalho iniciado no Linuxhint"

Saída

Conclusão

O comando LSET define um elemento de lista em um índice especificado para um determinado elemento da lista Redis armazenada em uma determinada chave. Desde que os índices da Lista Redis começam de 0, é o primeiro elemento. O índice 1 é o segundo elemento da lista e assim por diante. Conforme discutido, os índices dos elementos que começam pela cauda podem ser especificados usando números negativos como -1 é o último elemento, -2 é o elemento antes do último e assim por diante. Sempre que um índice inexistente for aprovado, o comando LSET retornará um erro. Além disso, este comando retorna uma saída simples de string sobre a execução bem -sucedida.