Olá! Boas-vindas ao curso de Redis: Manipulação de Dados com Strings, Listas e Conjuntos. Meu nome é Victorino Vila e é um grande prazer ter você aqui conosco para este que será o segundo curso da formação em Redis.
Audiodescrição: Victorino é uma pessoa de pele clara, com olhos castanhos e cabelo e cavanhaque grisalhos. Está com uma blusa de frio azul escuro. Ao fundo, parede branca, sem decorações.
Neste curso, vamos explorar o Redis, um banco de dados extremamente rápido e poderoso, amplamente utilizado para otimizar aplicações de alto desempenho. Para exemplificar o uso deste banco de dados, trabalharemos em um sistema de gerenciamento de tarefas, que será uma aplicação prática, que vai nos permitir aprender e aplicar os conceitos de forma eficiente.
Nosso principal objetivo é aprofundar nosso conhecimento no Redis, conhecendo suas estruturas de dados e entendendo como utilizá-lo em diferentes contextos. Vamos começar com uma pequena revisão dos comandos chave-valor do tipo String
, abordados no primeiro curso: os comandos GET
, SET
e DEL
.
Em seguida, vamos entender como funcionam as listas, que são um tipo de estrutura do Redis que permite adicionar elementos no topo, no final ou até mesmo em uma posição específica da lista. Além disso, aprenderemos como remover elementos da lista, tanto pelo início quanto usando uma posição específica.
Depois, vamos explorar outra estrutura de dados do Redis, que são os conjuntos. Vamos compreender a diferença entre conjuntos e listas, aprender como incluir elementos dentro de conjuntos, transferir elementos entre conjuntos, verificar a existência de um elemento dentro de um conjunto e realizar operações entre conjuntos, como interseção, diferença e união.
Vamos sempre utilizar listas e conjuntos com um exemplo prático, tudo baseado em um sistema de gerenciamento de tarefas. No caso das listas, utilizaremos um sistema de agendamento de tarefas, onde as tarefas serão realizadas em um determinado dia e hora. Já com os conjuntos, exploraremos um sistema de gerenciamento de tarefas de um projeto de software, onde várias tarefas serão realizadas para alcançar o objetivo final do projeto. Tudo isso simulando uma aplicação real e funcional.
O RedisDB tem sido cada vez mais adotado por diversas empresas como um banco de dados complementar para sistemas transacionais e gerenciais. Isso ocorre porque sua altíssima velocidade e seu propósito específico o tornam um recurso valioso para potencializar as aplicações atuais, principalmente aquelas que escalam com milhares ou milhões de pessoas usuárias.
Por isso, dominar o RedisDB abre diversas oportunidades profissionais, especialmente para aqueles que conseguem enxergar como integrar outros bancos de dados e sistemas ao Redis. O Redis não substitui um banco de dados relacional ou um NoSQL tradicional, mas complementa esses sistemas adicionando eficiência e alto desempenho.
Queremos muito compartilhar todo esse conhecimento com você. Vamos começar o curso e explorar o potencial do Redis? Até o próximo vídeo.
Olá! Vamos começar mais um curso na formação de RedisDB. Durante a formação, estamos implementando um sistema de gerenciamento de tarefas. Por isso, aconselhamos quem não fez o curso anterior a este que o faça, para que todo mundo possa começar com o mesmo nível de conhecimento.
Para quem fez o curso anterior e não tem mais o Redis instalado, seja por estar usando outra máquina ou por ter desconfigurado a máquina utilizada anteriormente, recomendamos que volte ao curso anterior e assista novamente a primeira aula, onde o ambiente é instalado e configurado.
Com o RedisDB instalado, vamos garantir que estamos com os mesmos dados. No terminal, entraremos no Linux, expandindo a opção de "Abrir Nova Guia" e selecionando "Ubuntu 22.04.5 LTS".
Primeiro, apagaremos todas as chaves de valores que temos no RedisDB atualmente. Faremos isso para recuperar essas chaves de valor através de um script, garantindo que iniciaremos com os mesmos dados dentro do RedisDB. Para isso, utilizamos o comando redis-cli --raw FLUSHDB
, que conhecemos no curso anterior.
redis-cli --raw FLUSHDB
Feito isso, o Redis estará vazio.
No início de cada vídeo, mostraremos um arquivo com todos os comandos executaremos. Esses arquivos estarão disponíveis para download, para que você possa repitir os passos sem a necessidade de digitar todos os comandos.
Os comandos que executaremos são extensos, com muitos textos, símbolos e caracteres diferentes. Portanto, já preparamos os comandos para que possamos apenas colá-los durante o vídeo. Mas, claro, antes disso, explicaremos o significado de cada comando.
Nosso objetivo será executar um script para criar uma série de chaves e valores dentro do RedisDB, garantindo iremos começar com um banco de dados idêntico. Para isso, na atividade anterior a este vídeo, haverá um link para download do arquivo chamado Comandos_iniciais_4443.txt
.
Abrindo esse arquivo com um editor de texto, notamos que estamos executando o comando SET
com uma chave, utilizando a mesma lei de formação que combinamos no curso anterior. Ou seja, o nome constante tarefa
para identificar o sistema em que estamos trabalhando; a data da tarefa que precisamos realizar; a hora em que faremos essa tarefa; e um texto explicando o significado da tarefa.
Comandos_iniciais_4443.txt
:
SET tarefa:2025-03-11:10_15 "Reunião com a equipe"
SET tarefa:2025-03-11:11_00 "Apresentação do portfólio da empresa"
SET tarefa:2025-03-11:14_55 "Reunião com a diretoria"
SET tarefa:2025-03-11:15_15 "Verificação de emails"
SET tarefa:2025-03-11:16_45 "Análise do novo contrato"
SET tarefa:2025-03-12:09_00 "Ir a academia"
SET tarefa:2025-03-12:10_15 "Reunião com a equipe"
SET tarefa:2025-03-12:11_00 "Apresentação do projeto de sistema de custos"
SET tarefa:2025-03-12:11_45 "Reunião de revisão das tarefas do projeto"
SET tarefa:2025-03-12:12:45 "Almoço com o cliente"
Assim, criaremos dez chaves de valores, cada chave com seu valor conforme especificado no arquivo. Basta copiar este arquivo para dentro do Linux e, em seguida, executar um comando Redis para ler os dados desse arquivo e criar as chaves de valores dentro do banco. No entanto, faremos isso de uma maneira diferente.
Vamos abrir outra janela do explorador de arquivos. Na barra de endereços, escreveremos duas barras e a sigla wsl
seguida do símbolo de cifrão. A sigla WSL vem de Windows Subsystem for Linux.
\\wsl$
Quando colamos este comando na barra de endereço e pressionamos "Enter", encontraremos uma pasta que representa nosso sistema Linux. Dessa maneira, conseguimos explorar visualmente os diretórios do Linux através do explorador de arquivos do Windows.
Vamos então entrar na pasta "Ubuntu-22.04". O nosso novo diretório de trabalho será criado a partir do diretório "home". Dentro do diretório "home", encontramos o diretório que representa o nosso usuário. No caso, estamos usando o usuário "victor".
Nesse diretório, criaremos outro subdiretório chamado "redisscr", que representa Redis Scripts. Em seguida, simplesmente moveremos o arquivo TXT de comandos iniciais que acabamos de baixar para dentro do diretório /home/victor/redisscr
.
Voltando ao terminal, vamos executar o comando ls
com a flag -l
e o caminho do diretório de trabalho para verificar todos os arquivos que estão dentro desse subdiretório:
ls -l /home/victor/redisscr
Assim, nos certificamos que o script Comandos_iniciais_4443.txt
está nesse diretório. Conseguimos copiar o script da máquina local para dentro do Linux de maneira visual, através do explorador de arquivos do sistema operacional Windows.
Para recriar as chaves, executaremos um comando que aprendemos no curso anterior, que é o cat
. Também devemos acrescentar o caminho do arquivo script contém os comandos que precisamos executar no RedisDB, separados por "Enter", um em cada linha. Além disso, utilizaremos a barra vertical e redis-cli
.
cat /home/victor/redisscr/Comandos_iniciais_4443.txt | redis-cli
Vamos executar este comando no terminal com a tecla "Enter". São retornados dez "OK", significando que criamos dez chaves de valor no RedisDB.
Para verificar essas chaves de valores, executaremos o comando redis-cli --raw
para mostrar os dados com acentos, finalizado com KEYS '*'
para poder visualizar todas as chaves.
redis-cli --raw KEYS '*'
São retornadas as dez chaves que foram incluídas através da leitura do script.
Agora, estamos com a mesma base. No próximo vídeo, vamos relembrar tudo o que aprendemos no curso anterior antes de começar a aprender novos conteúdos sobre o RedisDB.
Após revisar os comandos básicos do Redis, chegou o momento de aprofundar nosso conhecimento explorando comandos mais avançados na configuração de chaves de valor do tipo String, onde armazenamos no valor da chave um texto.
No sistema de gerenciamento de tarefas, muitas vezes, precisamos evitar sobrescritas indesejadas, ou seja, modificar valores já existentes, especialmente quando começamos a lidar com muita informação.
Para isso, devemos utilizar comandos que tornem nossa aplicação mais eficiente e robusta e, assim, evitar modificar uma tarefa que não desejamos alterar. Abordamos esse assunto no curso anterior, mas vamos explorar ainda mais esse conhecimento.
Algo que precisamos garantir é evitar incluir outra tarefa no mesmo horário. Primeiro, vamos conferir as chaves que estão no banco neste momento. No terminal Linux, vamos executar o comando que lista todas as chaves:
redis-cli --raw KEYS '*'
Saída:
tarefa:2025-03-11:10_15
tarefa:2025-03-11:11_00
tarefa:2025-03-11:14_55
tarefa:2025-03-11:15_15
tarefa:2025-03-11:16_45
tarefa:2025-03-12:09_00
tarefa:2025-03-12:10_15
tarefa:2025-03-12:11_00
tarefa:2025-03-12:11_45
tarefa:2025-03-12:12:45
São retornadas as dez chaves iniciais que carregamos no início da aula. Vamos tentar criar uma nova tarefa às 9 horas do dia 12 de março de 2025. Note que já existe uma tarefa sendo realizada nesse mesmo dia e hora.
Para verificar o conteúdo dessa chave do dia 12 de março de 2025 às 9 horas, usamos o comando GET
:
redis-cli --raw GET tarefa:2025-03-12:09_00
Saída: Ir a academia
A atividade é "Ir à academia". Se digitarmos o comando SET
com essa chave, não ocorrerá um erro. No entanto, isso irá substituir o valor do comando SET
pelo que existe dentro do RedisDB.
Pode ser que realmente queiramos fazer isso, ou seja, alterar o texto de uma tarefa que está no banco, substituindo uma por outra. Caso não queiramos fazer isso, precisamos garantir que não vamos substituir uma tarefa que já existe ao usar um comando SET
.
No curso anterior, conhecemos o parâmetro NX
no final do comando SET
para resolver esse problema. Mas, também existe o comando SETNX
que garante que a chave-valor, ou seja, a tarefa que estamos incluindo no sistema de gerenciamento, será incluída apenas se a chave não existir.
Agora, vamos tentar incluir uma nova atividade no dia 12 de março de 2025, às 9 da manhã. Vamos usar o comando SETNX
para garantir que, se já existir aquela chave, não vamos substituir seu valor. Nesse exemplo, vamos tentar incluir o texto "Revisar trabalho da equipe".
redis-cli --raw SETNX tarefa:2025-03-12:09_00 "Revisar trabalho da equipe"
Saída: 0
Obtivemos um retorno zero, significando que nada foi incluído dentro do RedisDB. Esse código zero indica o número de registros que foram manipulados no comando.
Se repetíssemos o comando GET
, verificaríamos que ainda continuamos com a tarefa "Ir à academia". Isso aconteceu porque usamos o SETNX
, que só inclui se a chave não existir.
Vamos agora efetuar essa atividade, "Revisar o trabalho da equipe", porém, em um horário diferente. Vamos colocar às 9h45 ainda no dia 12 de março de 2025.
redis-cli --raw SETNX tarefa:2025-03-12:09_45 "Revisar trabalho da equipe"
Saída: 1
Agora, estamos colocando um horário diferente do horário de 9h. Essa chave não existe no banco. Por isso, é retornado o número 1, indicando que um registro foi manipulado dentro do banco.
Se executamos agora o comando GET
às 9h45, conferimos que a nova atividade é "Revisar trabalho da equipe".
redis-cli --raw GET tarefa:2025-03-12:09_45
Saída: Revisar trabalho da equipe
Agora, queremos modificar uma tarefa que já existe. Em vez de usar o SETNX
, usaremos somente o SET
.
Iremos rodar o comando SET
com a chave às 9h45 do dia 12 de março de 2025. Antes, o texto era "Revisar trabalho da equipe". Agora, atualizaremos para "Revisar trabalho da equipe de vendas":
redis-cli --raw SET tarefa:2025-03-12:09_45 "Revisar trabalho da equipe de vendas"
Saída: OK
Depois de executá-lo, recebemos um "OK", indicando que houve a atualização. Se conferimos o valor da chave às 9h45, teremos um novo texto:
redis-cli --raw GET tarefa:2025-03-12:09_45
Saída: Revisar trabalho da equipe de vendas
A melhor forma de atualizar uma chave seria usar o comando GETSET
, pois ele mostra o valor antigo antes de atualizar. Digamos que queiramos modificar novamente a chave das 9h45 e acrescentar o texto "Revisar trabalho da equipe de vendas na região sul":
redis-cli --raw GETSET tarefa:2025-03-12:09_45 "Revisar trabalho da equipe de vendas da região sul"
Saída: Revisar trabalho da equipe de vendas
Quando executamos, o comando mostra o valor da chave antiga. Assim, nos certificamos que houve uma modificação do valor antigo "Revisar trabalho da equipe de vendas" para o novo valor definido no comando. Inclusive, se executamos o GET
, receberemos o texto da atividade atualizada.
Podemos também visualizar tarefas ao mesmo tempo. Em vez de usar o GET
para pegar uma única tarefa, podemos utilizar o comando MGET
, onde conseguimos visualizar mais de uma tarefa.
Para visualizar todas as tarefas existentes, podemos executar o comando:
redis-cli --raw KEYS '*'
Dessa vez, temos 11 tarefas e escolhemos três delas:
No comando que vamos executar, utilizamos o MGET
e colocamos as tarefas separadas por espaço. Lembre-se de que o código da chave não pode ter espaço.
redis-cli --raw MGET tarefa:2025-03-12:09_00 tarefa:2025-03-12:09_45 tarefa:2025-03-12:10_15
Saída:
Ir a academia
Revisar trabalho da equipe de vendas
Reunião com a equipe
Assim, no dia 12 de março de 2025, vamos ir à academia às 9 horas, revisar o trabalho da equipe de vendas na região sul às 9h45 e participar da reunião com a equipe às 10h15.
Neste vídeo, exploramos os comandos mais avançados de manipulação de strings. Agora que compreendemos melhor como evitar sobrescritas, atualizar valores com certo controle e recuperar múltiplas informações com um único comando, podemos continuar a evoluir o nosso sistema de gerenciamento de tarefas. Até o próximo vídeo!
O curso Redis manipulação de dados: Strings, Listas e Conjuntos possui 164 minutos de vídeos, em um total de 57 atividades. Gostou? Conheça nossos outros cursos de NoSQL em Data Science, ou leia nossos artigos de Data Science.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.