Redis Srem

Redis Srem
“Se o seu próximo aplicativo da web procurar uma maneira de armazenar uma coleção de strings sem duplicatas, os conjuntos de Redis são a estrutura de dados preferida. Os conjuntos Redis podem conter mais de quatro bilhões de membros do tipo string, que são mais do que suficientes em casos de uso prático. Vários comandos pré-construídos estão disponíveis para executar operações básicas a avançadas em conjuntos como adição, remoção, verificação de existência etc. A coisa mais importante sobre as operações de conjunto básico, como Add e Remof, é que elas têm complexidade de tempo constante.”

Comando Redis Srem

O comando redis srem é usado para remover elementos de um conjunto armazenado em uma chave especificada. Da versão 2.4.0, este comando suporta a remoção de vários membros simultaneamente. Valitações estão em vigor para os seguintes cenários.

Especificando membros inexistentes

Se um membro especificado não fizer parte do conjunto fornecido, esse membro será ignorado.

Especificando a chave inexistente

Sempre que a chave não estiver disponível, o comando SREM retornará 0. Nesse caso, o comando SREM trata esse conjunto inexistente como um conjunto vazio.

Sintaxe:

O comando SREM tem sintaxe muito simples, como mostrado no seguinte.

SREM REDIS_KEY MEMBRO [MEMBRO…]

redis_key: O identificador exclusivo onde o conjunto é armazenado.

membro: O membro a ser removido da lista. Opcionalmente, você pode especificar vários membros.

O comando SREM retorna um valor inteiro que é a contagem dos membros removidos com sucesso. Como exemplo, se três membros fossem removidos do conjunto, o valor de retorno seria 3.

Além disso, se você especificar uma chave que aponta para um hash ou lista, mas não para um conjunto. Nesse caso, o comando SREM levantaria um erro.

Exemplo 01 - Remova um membro do conjunto

Vamos supor que vamos armazenar os principais fãs do seu site pessoal com base no nível de interatividade a cada mês. Como os conjuntos mantêm membros não duplicados, podemos garantir que o mesmo usuário não seja adicionado várias vezes.

Usaremos o comando sadd para adicionar os 5 principais fãs em janeiro ao conjunto armazenado em Key Topfans: janeiro.

SADD TOPFANS: JANEIRO JACKNELSON TINAMADDY JOSHINGLISH EOINMORGAN DEREKHARNS

Vamos inspecionar o TopFans: janeiro Defina usando o comando smembers.

SMEMBERS TOPFANS: JANEIRO

Saída:

Devido ao comportamento antiético do membro "tinamaddy", temos um requisito para removê -la do conjunto. Agora o comando srem é o candidato ideal para fazer isso.

SREM Topfans: janeiro Tinamaddy

Como esperado, a saída é 1, o que significa que um membro foi removido. Vamos inspecionar os membros existentes no set também.

SMEMBERS TOPFANS: JANEIRO

Como mostrado na saída acima, o membro “tinamaddy” passou da lista.

Exemplo 02 - Remova vários membros simultaneamente

Em alguns cenários, podemos precisar remover mais de um membro de um conjunto. Portanto, o comando SREM suporta vários argumentos de membros. Digamos que precisamos remover os membros "Jacknelson" e "Joshingohlish". O seguinte comando faria isso por você.

SREM Topfans: janeiro Jacknelson Joshingohlish

O comando retornou o número inteiro 2, o que significa que dois membros foram removidos.

O importante a perceber é que o comando SREM consome tempo constante em ambos os cenários. Portanto, é recomendável usar em aplicações de baixa latência.

Conclusão

Para resumir, o comando SREM opera em estruturas de dados definidas. Seu trabalho principal é remover um elemento de um conjunto armazenado em uma chave especificada. Como os comandos SADD e SMISMEmber, o comando SREM tem complexidade de tempo constante, onde o número de elementos não entrará em vigor no tempo de execução do comando SREM. Como afirmado, da versão 2 Redis.4.0, o comando SREM permite vários argumentos de membros. Portanto, você pode excluir vários membros de uma determinada lista simultaneamente. Após a execução deste comando, ele retorna um valor inteiro que é o número de elementos removidos com sucesso da lista. No geral, o comando SREM é um candidato ideal para usar em aplicações de baixa latência.