Introdução
Neste laboratório, você explorará as operações de conjuntos do Redis, com foco na manipulação de coleções não ordenadas de strings únicas. Você aprenderá como adicionar elementos a um conjunto usando o comando SADD, realizar uniões de conjuntos com SUNION, encontrar elementos comuns usando SINTER e identificar diferenças entre conjuntos com SDIFF. Finalmente, você aprenderá como armazenar os resultados das operações de conjuntos para uso posterior.
Adicionar Elementos a um Conjunto com SADD
Nesta etapa, você aprenderá como adicionar elementos a um conjunto Redis usando o comando SADD. Conjuntos no Redis são coleções não ordenadas de strings únicas. Isso significa que cada elemento em um conjunto deve ser único, e a ordem em que os elementos são adicionados ao conjunto não é preservada.
O comando SADD adiciona um ou mais membros a um conjunto. Se o membro especificado já for membro do conjunto, ele será ignorado. Se o conjunto não existir, um novo conjunto é criado com o(s) membro(s) especificado(s).
Vamos começar conectando-se ao servidor Redis. Abra seu terminal e execute o seguinte comando:
redis-cli
Este comando abrirá a interface de linha de comando do Redis.
Agora, vamos adicionar alguns elementos a um conjunto chamado my_set. Execute o seguinte comando:
SADD my_set "apple" "banana" "cherry"
Este comando adicionará as strings "apple", "banana" e "cherry" ao conjunto my_set. A saída será um inteiro representando o número de elementos que foram adicionados com sucesso ao conjunto. Neste caso, a saída deve ser 3.
(integer) 3
Agora, vamos tentar adicionar um elemento que já existe no conjunto. Execute o seguinte comando:
SADD my_set "apple"
Este comando tentará adicionar a string "apple" ao conjunto my_set. No entanto, como "apple" já é um membro do conjunto, ele será ignorado. A saída será 0, indicando que nenhum novo elemento foi adicionado.
(integer) 0
Para verificar se os elementos foram adicionados ao conjunto, você pode usar o comando SMEMBERS. Execute o seguinte comando:
SMEMBERS my_set
Este comando retornará uma lista de todos os membros do conjunto my_set. A saída deve ser:
1) "cherry"
2) "banana"
3) "apple"
Observe que a ordem dos elementos na saída pode ser diferente da ordem em que foram adicionados. Isso ocorre porque os conjuntos são coleções não ordenadas.
Finalmente, saia do CLI do Redis:
exit
É importante sair do redis-cli para que seus comandos sejam registrados.
Você agora adicionou com sucesso elementos a um conjunto Redis usando o comando SADD. Esta é uma operação fundamental para trabalhar com conjuntos no Redis, e será usada nas etapas seguintes para realizar operações mais complexas.
Calcular a União com SUNION
Nesta etapa, você aprenderá como calcular a união de múltiplos conjuntos Redis usando o comando SUNION. A união de conjuntos é um novo conjunto contendo todos os elementos únicos presentes em qualquer um dos conjuntos originais.
Primeiro, vamos adicionar alguns elementos a um novo conjunto chamado my_set2. Conecte-se ao servidor Redis usando:
redis-cli
Agora, adicione elementos a my_set2:
SADD my_set2 "banana" "grape" "orange"
Este comando adiciona "banana", "grape" e "orange" a my_set2. A saída deve ser 3.
(integer) 3
Agora que temos dois conjuntos, my_set (contendo "apple", "banana", "cherry") e my_set2 (contendo "banana", "grape", "orange"), podemos calcular sua união usando o comando SUNION. Execute o seguinte comando:
SUNION my_set my_set2
Este comando retornará a união de my_set e my_set2. A saída será uma lista de todos os elementos únicos presentes em qualquer um dos conjuntos:
1) "orange"
2) "grape"
3) "apple"
4) "banana"
5) "cherry"
Observe que "banana" aparece apenas uma vez no resultado, embora esteja presente em ambos my_set e my_set2. Isso ocorre porque os conjuntos contêm apenas elementos únicos. A ordem dos elementos no resultado não é garantida.
Finalmente, saia do CLI do Redis:
exit
O comando SUNION retorna a união dos conjuntos diretamente para o cliente. Se você quiser armazenar o resultado em um novo conjunto, você pode usar o comando SUNIONSTORE, que não é abordado neste laboratório.
Nesta etapa, você aprendeu como calcular a união de múltiplos conjuntos Redis usando o comando SUNION. Esta é uma operação útil para combinar dados de múltiplos conjuntos em um único conjunto.
Calcular a Intersecção com SINTER
Nesta etapa, você aprenderá como calcular a intersecção de múltiplos conjuntos Redis usando o comando SINTER. A intersecção de conjuntos é um novo conjunto contendo apenas os elementos que estão presentes em todos os conjuntos originais.
Conecte-se ao servidor Redis usando:
redis-cli
Já temos dois conjuntos, my_set (contendo "apple", "banana", "cherry") e my_set2 (contendo "banana", "grape", "orange"). Vamos calcular sua intersecção usando o comando SINTER. Execute o seguinte comando:
SINTER my_set my_set2
Este comando retornará a intersecção de my_set e my_set2. A saída será uma lista de todos os elementos que estão presentes em ambos os conjuntos:
1) "banana"
Observe que apenas "banana" está presente em ambos my_set e my_set2. Portanto, a intersecção dos dois conjuntos é um conjunto contendo apenas "banana".
Vamos adicionar um terceiro conjunto chamado my_set3 e adicionar "banana" e "apple" a ele.
SADD my_set3 "banana" "apple"
A saída deve ser 2.
(integer) 2
Agora, vamos calcular a intersecção de my_set, my_set2 e my_set3. Execute o seguinte comando:
SINTER my_set my_set2 my_set3
Este comando retornará a intersecção de todos os três conjuntos. A saída será:
1) "banana"
Apenas "banana" está presente em todos os três conjuntos.
Finalmente, saia do CLI do Redis:
exit
O comando SINTER retorna a intersecção dos conjuntos diretamente para o cliente. Se você quiser armazenar o resultado em um novo conjunto, você pode usar o comando SINTERSTORE, sobre o qual você aprenderá mais tarde.
Nesta etapa, você aprendeu como calcular a intersecção de múltiplos conjuntos Redis usando o comando SINTER. Esta é uma operação útil para encontrar elementos comuns entre múltiplos conjuntos.
Calcular a Diferença com SDIFF
Nesta etapa, você aprenderá como calcular a diferença entre conjuntos Redis usando o comando SDIFF. A diferença entre conjuntos é um novo conjunto contendo apenas os elementos que estão presentes no primeiro conjunto, mas não em nenhum dos conjuntos subsequentes.
Conecte-se ao servidor Redis usando:
redis-cli
Temos três conjuntos: my_set (contendo "apple", "banana", "cherry"), my_set2 (contendo "banana", "grape", "orange") e my_set3 (contendo "banana", "apple"). Vamos calcular a diferença entre my_set e my_set2 usando o comando SDIFF. Execute o seguinte comando:
SDIFF my_set my_set2
Este comando retornará a diferença entre my_set e my_set2. A saída será uma lista de todos os elementos que estão presentes em my_set mas não em my_set2:
1) "apple"
2) "cherry"
"apple" e "cherry" estão em my_set mas não em my_set2. "banana" está em ambos os conjuntos, então não está incluído no resultado.
Agora, vamos calcular a diferença entre my_set e ambos my_set2 e my_set3. Execute o seguinte comando:
SDIFF my_set my_set2 my_set3
Este comando retornará a diferença entre my_set e a união de my_set2 e my_set3. A saída será:
1) "cherry"
"apple" está em my_set mas também em my_set3, então é excluído. "banana" está em my_set mas também em my_set2 e my_set3, então é excluído. Apenas "cherry" está exclusivamente em my_set.
Finalmente, saia do CLI do Redis:
exit
O comando SDIFF retorna a diferença dos conjuntos diretamente para o cliente. Se você quiser armazenar o resultado em um novo conjunto, você pode usar o comando SDIFFSTORE (não coberto neste laboratório).
Nesta etapa, você aprendeu como calcular a diferença entre conjuntos Redis usando o comando SDIFF. Esta é uma operação útil para encontrar elementos que são exclusivos de um conjunto específico.
Armazenar Resultados com SINTERSTORE
Nesta etapa, você aprenderá como armazenar o resultado de uma operação de intersecção em um novo conjunto usando o comando SINTERSTORE. Isso é útil quando você deseja realizar operações adicionais na intersecção de conjuntos sem recalculá-la toda vez.
Conecte-se ao servidor Redis usando:
redis-cli
Temos três conjuntos: my_set (contendo "apple", "banana", "cherry"), my_set2 (contendo "banana", "grape", "orange") e my_set3 (contendo "banana", "apple"). Na etapa anterior, calculamos a intersecção desses conjuntos e descobrimos que apenas "banana" estava presente em todos os três.
Agora, vamos armazenar o resultado da intersecção de my_set, my_set2 e my_set3 em um novo conjunto chamado intersection_set usando o comando SINTERSTORE. Execute o seguinte comando:
SINTERSTORE intersection_set my_set my_set2 my_set3
Este comando calculará a intersecção de my_set, my_set2 e my_set3 e armazenará o resultado em um novo conjunto chamado intersection_set. A saída será um inteiro representando o número de elementos no conjunto resultante. Neste caso, a saída deve ser 1, porque a intersecção contém apenas um elemento ("banana").
(integer) 1
Para verificar se a intersecção foi armazenada corretamente, você pode usar o comando SMEMBERS para visualizar os membros do intersection_set. Execute o seguinte comando:
SMEMBERS intersection_set
Este comando retornará uma lista de todos os membros do conjunto intersection_set. A saída deve ser:
1) "banana"
Isso confirma que a intersecção de my_set, my_set2 e my_set3 foi armazenada com sucesso no intersection_set.
Finalmente, saia do CLI do Redis:
exit
Nesta etapa, você aprendeu como armazenar o resultado de uma operação de intersecção em um novo conjunto usando o comando SINTERSTORE. Isso permite que você reutilize o resultado da intersecção em operações subsequentes sem ter que recalculá-lo.
Resumo
Neste laboratório, você aprendeu como adicionar elementos a um conjunto Redis usando o comando SADD. Conjuntos Redis são coleções não ordenadas de strings únicas, o que significa que cada elemento deve ser único e a ordem não é preservada.
O comando SADD adiciona um ou mais membros a um conjunto, ignorando duplicatas. O laboratório demonstrou a adição de elementos a um conjunto, observando o valor de retorno indicando o número de elementos adicionados e verificando o conteúdo do conjunto usando SMEMBERS. A ordem de saída de SMEMBERS pode diferir da ordem de inserção devido à natureza não ordenada dos conjuntos. Você também aprendeu como calcular uniões de conjuntos com SUNION, encontrar elementos comuns usando SINTER, identificar diferenças entre conjuntos com SDIFF e armazenar os resultados de operações de conjuntos para uso posterior com SINTERSTORE. Lembre-se de sair do redis-cli após cada etapa para garantir que seus comandos sejam registrados.


