Iniciando a simulação de estresse no sistema
Vamos iniciar uma nova fase no desenvolvimento do nosso sistema de gerenciamento de tarefas. Antes de aplicarmos os comandos para diagnosticar e otimizar esse ambiente, vamos observar como o sistema se comporta sob uma situação de estresse. Para isso, simularemos um ambiente com muita carga dentro do Redis, pois nosso objetivo é gerar um cenário mais próximo do real, com um grande número de tarefas. Assim, poderemos realizar um diagnóstico do ambiente.
Vamos começar inserindo algumas novas tarefas, hashes, dentro do sistema de gerenciamento de tarefas. Na parte onde estamos desenvolvendo tarefas para a construção de um software, temos os comandos para fazer isso. Vamos criar as chaves número 100, 101, 102 e 103.
Criando tarefas no Redis
Para criar a chave número 100, utilizamos o seguinte comando:
redis-cli --raw -a SuperSenhaSegura123 HSET tarefa:DevSoftware:00100 descricao "Realizar integração contínua" responsavel "Leticia Souza" status "Pendente" prioridade "Alta" categoria "DevOps"
Esse comando insere uma nova tarefa com a descrição "Realizar integração contínua", responsável "Leticia Souza", status "Pendente", prioridade "Alta" e categoria "DevOps".
Continuando, criamos a chave número 101:
redis-cli --raw -a SuperSenhaSegura123 HSET tarefa:DevSoftware:00101 descricao "Configurar servidor de staging" responsavel "Marcelo Dias" status "Executando" prioridade "Media" categoria "Infraestrutura"
Aqui, a tarefa é "Configurar servidor de staging", com o responsável "Marcelo Dias", status "Executando", prioridade "Média" e categoria "Infraestrutura".
Prosseguimos com a chave número 102:
redis-cli --raw -a SuperSenhaSegura123 HSET tarefa:DevSoftware:00102 descricao "Validar regras de negócio" responsavel "Juliana Nunes" status "Pendente" prioridade "Alta" categoria "Testes"
Esta tarefa é "Validar regras de negócio", atribuída a "Juliana Nunes", com status "Pendente", prioridade "Alta" e categoria "Testes".
Finalmente, criamos a chave número 103:
redis-cli --raw -a SuperSenhaSegura123 HSET tarefa:DevSoftware:00103 descricao "Ajustar layout mobile" responsavel "Caio Oliveira" status "Executando" prioridade "Média" categoria "Design"
A tarefa "Ajustar layout mobile" é de responsabilidade de "Caio Oliveira", com status "Executando", prioridade "Média" e categoria "Design".
Trabalhando com tarefas agendadas
Também podemos trabalhar com as tarefas agendadas usando o ZADD, ou seja, criando um sorted set onde os detalhamentos da tarefa estarão dentro de um JSON. Vamos associar tarefas que serão realizadas no dia 25 de abril de 2025.
Para adicionar uma tarefa às 9h, usamos:
redis-cli --raw -a SuperSenhaSegura123 ZADD tarefa:2025-04-25 900 '{"hora": "09:00", "descricao": "Revisar backlog com equipe", "responsavel": "Bruna Lopes", "prioridade": "Alta"}'
Essa tarefa é "Revisar backlog com equipe", com "Bruna Lopes" como responsável e prioridade "Alta".
Adicionaremos mais uma tarefa, que será executada às 11h30 da manhã:
redis-cli --raw -a SuperSenhaSegura123 ZADD tarefa:2025-04-25 1130 '{"hora": "11:30", "descricao": "Atualizar status no jira", "responsavel": "Felipe Mendes", "prioridade": "Média"}'
A terceira tarefa será às 14h:
redis-cli --raw -a SuperSenhaSegura123 ZADD tarefa:2025-04-25 1400 '{"hora": "14:00", "descricao": "Sprint Review com cliente", "responsavel": "Renata Dias", "prioridade": "Alta"}'
E mais uma tarefa naquela mesma data, às 16h30:
redis-cli --raw -a SuperSenhaSegura123 ZADD tarefa:2025-04-25 1630 '{"hora": "16:30", "descricao": "Deploy para staging", "responsavel": "Tiago Rocha", "prioridade": "Alta"}'
Adicionando múltiplas entradas para estresse
Para estressarmos realmente o Redis, precisamos adicionar mais chaves. Uma maneira rápida de fazer isso é utilizando um loop via script do Linux e os comandos seq e xargs, conseguimos criar múltiplas entradas rapidamente no Redis. Estamos falando de um comando no qual criamos uma sequência que vai de 200 a 250, ou seja, trabalhamos com 50 chaves.
seq 200 250 | xargs -I{} redis-cli --raw -a SuperSenhaSegura123 HSET tarefa:DevSoftware:{} descricao "Tarefa simulada {}" responsavel "Usuário Teste" status "Pendente" prioridade "Alta" categoria "Simulacao"
Foram criadas várias tarefas, como devsoft 200, devsoft 201, devsoft 202 até devsoft 250, pois utilizamos esse loop. Também podemos, para as tarefas agendadas, inserir uma série de outras tarefas, como 800, 900, 1000, 1100, 1200, ou seja, essa sequência de valores.
for h in 800 900 1000 1100 1200 1300 1400 1500; do
redis-cli --raw -a SuperSenhaSegura123 ZADD tarefa:2025-04-26 $h "{\"hora\": \"$(h:0:2):$(h:2:2)\", \"descricao\": \"Tarefa horário $h\", \"responsavel\": \"Sistema\", \"prioridade\": \"Média\"}"
done
Nesse caso, criamos uma série de tarefas que estarão armazenadas dentro da base de dados utilizando um JSON, onde o horário foi substituído por essa sequência especificada. Na data de 26/04, teremos tarefas às 8 horas, 9 horas, 10 horas, 11 horas, meio-dia, 13 horas, 14 horas e 15 horas.
Concluindo a preparação para monitoramento
Com isso, criamos um cenário que se aproxima do realista, onde temos dezenas de chaves de diferentes tipos dentro do Redis. Esses dados que incluímos serão a base para nossos próximos vídeos, nos quais faremos o monitoramento e ajustes de desempenho.
Até o próximo vídeo!