Armazenando dados com Redis
()
Sobre este e-book
Neste livro, Rodrigo Lazoti mostrará por que trabalhar com o Redis e bancos de dados chave/valor em memória pode trazer enormes ganhos de performance para sua aplicação, assim como ser uma excelente solução para diversos problemas que enfrentamos no dia a dia ao desenvolver software. Você vai aprender a trabalhar com estruturas clássicas e modernas de dados e armazenamento, filas, listas, conjuntos, além das configurações de mecanismos de publish e subscribe e, claro, como usar todo o poder da API do Redis.
Nesta edição atualizada, estão presentes novidades como geolocalização e HyperLogLog, assim como a revisão de todo o seu conteúdo para a última versão do Redis.
Relacionado a Armazenando dados com Redis
Ebooks relacionados
SOA aplicado: Integrando com web services e além Nota: 0 de 5 estrelas0 notasYesod e Haskell: Aplicações web com Programação Funcional pura Nota: 0 de 5 estrelas0 notasDesbravando SOLID: Práticas avançadas para códigos de qualidade em Java moderno Nota: 0 de 5 estrelas0 notasCodeIgniter: Produtividade na criação de aplicações web em PHP Nota: 0 de 5 estrelas0 notasPSRs: Boas práticas de programação com PHP Nota: 4 de 5 estrelas4/5RSpec: Crie especificações executáveis em Ruby Nota: 0 de 5 estrelas0 notasArquitetura de software distribuído: Boas práticas para um mundo de microsserviços Nota: 0 de 5 estrelas0 notasJavaScript Assertivo: Testes e qualidade de código em todas as camadas da aplicação Nota: 0 de 5 estrelas0 notasTDD e BDD na prática: Construa aplicações Ruby usando RSpec e Cucumber Nota: 0 de 5 estrelas0 notasCaixa de Ferramentas DevOps: Um guia para construção, administração e arquitetura de sistemas modernos Nota: 0 de 5 estrelas0 notasProgramação Funcional: Uma introdução em Clojure Nota: 4 de 5 estrelas4/5DevOps na prática: Entrega de software confiável e automatizada Nota: 0 de 5 estrelas0 notasVire o jogo com Spring Framework Nota: 0 de 5 estrelas0 notasKubernetes: Tudo sobre orquestração de contêineres Nota: 5 de 5 estrelas5/5Microsserviços e EJB: Escale sua aplicação, não a complexidade Nota: 0 de 5 estrelas0 notasAzure: Coloque suas plataformas e serviços no cloud Nota: 0 de 5 estrelas0 notasExplorando APIs e bibliotecas Java: JDBC, IO, Threads, JavaFX e mais Nota: 0 de 5 estrelas0 notasRedmine: Gerenciamento flexível de projetos Nota: 0 de 5 estrelas0 notasEmber.js: Conheça o framework para aplicações web ambiciosas Nota: 0 de 5 estrelas0 notasGuia prático de TypeScript: Melhore suas aplicações JavaScript Nota: 0 de 5 estrelas0 notasCanivete suíço do desenvolvedor Node Nota: 0 de 5 estrelas0 notasCucumber e RSpec: Construa aplicações Ruby com testes e especificações Nota: 0 de 5 estrelas0 notasBack-end Java: Microsserviços, Spring Boot e Kubernetes Nota: 0 de 5 estrelas0 notasConstruindo APIs REST com Node.js: Caio Ribeiro Pereira Nota: 5 de 5 estrelas5/5Do PHP ao Laminas: Domine as boas práticas Nota: 3 de 5 estrelas3/5Coletânea Front-end: Uma antologia da comunidade front-end brasileira Nota: 0 de 5 estrelas0 notasDesconstruindo a Web: As tecnologias por trás de uma requisição Nota: 0 de 5 estrelas0 notasMezzio e PHP 7: Uma união poderosa para criação de APIs Nota: 2 de 5 estrelas2/5Meteor: Criando aplicações web real-time com JavaScript Nota: 5 de 5 estrelas5/5Front-end com Vue.js: Da teoria à prática sem complicações Nota: 5 de 5 estrelas5/5
Programação para você
Aprenda a programar com Python: Descomplicando o desenvolvimento de software Nota: 5 de 5 estrelas5/5Introdução a Data Science: Algoritmos de Machine Learning e métodos de análise Nota: 0 de 5 estrelas0 notasO universo da programação: Um guia de carreira em desenvolvimento de software Nota: 5 de 5 estrelas5/5Lógica de Programação: Crie seus primeiros programas usando Javascript e HTML Nota: 3 de 5 estrelas3/5Python: Escreva seus primeiros programas Nota: 4 de 5 estrelas4/5MySQL: Comece com o principal banco de dados open source do mercado Nota: 4 de 5 estrelas4/5Cangaceiro JavaScript: Uma aventura no sertão da programação Nota: 5 de 5 estrelas5/5Lógica de programação com Portugol: Mais de 80 exemplos, 55 exercícios com gabarito e vídeos complementares Nota: 0 de 5 estrelas0 notasPostgreSQL: Banco de dados para aplicações web modernas Nota: 5 de 5 estrelas5/5Trilhas Python: Programação multiparadigma e desenvolvimento Web com Flask Nota: 4 de 5 estrelas4/5React Native: Desenvolvimento de aplicativos mobile com React Nota: 5 de 5 estrelas5/5Arduino: Guia para colocar suas ideias em prática Nota: 5 de 5 estrelas5/5Python e mercado financeiro: Programação para estudantes, investidores e analistas Nota: 5 de 5 estrelas5/5Desbravando Java e Orientação a Objetos: Um guia para o iniciante da linguagem Nota: 5 de 5 estrelas5/5Desenvolvimento web com PHP e MySQL Nota: 3 de 5 estrelas3/5Django de A a Z: Crie aplicações web rápidas, seguras e escaláveis com Python Nota: 0 de 5 estrelas0 notasOrientação a Objetos em C#: Conceitos e implementações em .NET Nota: 5 de 5 estrelas5/5Arduino prático: 10 projetos para executar, aprender, modificar e dominar o mundo Nota: 3 de 5 estrelas3/5Machine Learning: Introdução à classificação Nota: 0 de 5 estrelas0 notasProdutividade em C#: Obtenha mais resultado com menos esforço Nota: 0 de 5 estrelas0 notasBusiness Intelligence: Implementar do jeito certo e a custo zero Nota: 4 de 5 estrelas4/5Desenvolvimento de Jogos em HTML5 Nota: 5 de 5 estrelas5/5Guia prático de TypeScript: Melhore suas aplicações JavaScript Nota: 0 de 5 estrelas0 notasHTML5 e CSS3: Domine a web do futuro Nota: 4 de 5 estrelas4/5O Programador Apaixonado: Construindo uma carreira notável em desenvolvimento de software Nota: 5 de 5 estrelas5/5Linux Essentials: um guia do sistema operacional Linux para iniciantes Nota: 0 de 5 estrelas0 notasHTML 5 - Embarque Imediato Nota: 0 de 5 estrelas0 notasAplicações web real-time com Node.js Nota: 5 de 5 estrelas5/5Introdução à computação: Da lógica aos jogos com Ruby Nota: 0 de 5 estrelas0 notasScrum 360: Um guia completo e prático de agilidade Nota: 5 de 5 estrelas5/5
Avaliações de Armazenando dados com Redis
0 avaliação0 avaliação
Pré-visualização do livro
Armazenando dados com Redis - Rodrigo Lazoti
Sumário
ISBN
Agradecimentos
Sobre o autor
Sobre o livro
1. Começando com o Redis
2. Conhecendo o Redis
3. Redis no mundo real – Parte 1
4. Redis no mundo real – Parte 2
5. Redis no mundo real – Parte 3
6. Redis no mundo real – Parte 4
7. O que mais o Redis pode fazer
8. Monitorando o Redis
9. Administrando o Redis
10. Gerenciando várias instâncias do Redis
11. Para saber mais
ISBN
Impresso e PDF: 978-85-66250-39-8
EPUB: 978-65-86110-41-8
MOBI: 978-65-86110-40-1
Caso você deseje submeter alguma errata ou sugestão, acesse http://erratas.casadocodigo.com.br.
Agradecimentos
Your time is limited, so don't waste it living someone else's life. Don't be trapped by dogma — which is living with the results of other people's thinking. Don't let the noise of others' opinions drown out your own inner voice. And most important, have the courage to follow your heart and intuition. They somehow already know what you truly want to become. Everything else is secondary.
– Steve Jobs
Escrever um livro é sempre uma tarefa longa e difícil, pois temos de aplicar muito esforço e tempo. Por este motivo, tenho muito a agradecer às pessoas que me ajudaram direta ou indiretamente ao longo dessa jornada.
Em primeiro lugar, agradeço à minha esposa Andressa pelo seu apoio incondicional e pelo carinho durante as diversas horas que passei escrevendo o livro. Aos meus filhos Rafael e Caroline pela compreensão e paciência, e à minha mãe e aos meus irmãos por todo o apoio.
Agradeço também a todo o pessoal da Casa do Código pela orientação e ajuda, principalmente ao Paulo Silveira e Adriano Almeida por acreditar, apoiar e me acompanhar no decorrer do meu trabalho neste livro.
E, principalmente, agradeço a você, leitor, leitora, por investir seu precioso tempo neste livro.
Obrigado a todos vocês!
Sobre o autor
Brasileiro, nascido no estado de São Paulo, Rodrigo Lazoti é bacharel em Sistemas de informação pela Faculdade Drummond e pós-graduado em Engenharia de Software pela PUC-MG.
Trabalha como desenvolvedor de software desde 2002 e já participou de diversos projetos como desenvolvedor e consultor para empresas como HotWords, Unimed e Portal R7, a maioria envolvendo as linguagens de programação Java, Scala e JavaScript, assim como bancos de dados relacionais e não relacionais.
Atualmente, mora no Canadá e integra a equipe de desenvolvimento em uma das maiores plataformas de food delivery do mundo como engenheiro de software sênior. Mantém seu blog pessoal em https://rlazoti.github.io/, uma conta no Twitter como @rodrigolazoti e GitHub em https://github.com/rlazoti.
Sobre o livro
O que é o Redis
Redis (Remote Dictionary Server) é um banco de dados open source criado em meados de 2009 e escrito em C, sendo um banco não relacional que armazena seus dados no formato de chave-valor em memória RAM.
Por conta de sua alta performance em leitura e escrita de dados, é muito comum ser utilizado como um cache para banco de dados relacionais, porém seu uso vai muito além de apenas um cache distribuído de dados. Ademais, ele também suporta replicação e cluster de dados, assim como durabilidade de dados opcional.
Para quem se destina este livro?
Este livro se destina a desenvolvedores e profissionais de TI que desejam entender o que é ou ampliar seus conhecimentos em Redis, e como usá-lo além de um simples cache de dados.
Conhecimento básico em estrutura de dados pode auxiliar no entendimento deste livro, além disso, alguns exemplos serão apresentados através da linguagem de programação Java, mas é importante ressaltar que não é necessário conhecimento com essa linguagem pois todos os exemplos podem ser feitos utilizando o próprio cliente de linha de comando do Redis.
Como devo estudar?
No decorrer do livro, você vai aprender diversos comandos e estruturas de dados presentes no Redis através de exemplos práticos. O livro também conta com exercícios no final de cada seção para ajudar o leitor a praticar os conceitos apresentados.
Também convido o leitor a acessar todo o código-fonte das atividades presentes no livro em meu repositório https://github.com/rlazoti/exemplos-livro-redis.
Dedicatória
À minha amada esposa e aos meus queridos filhos.
Capítulo 1
Começando com o Redis
Desde que comecei a estudar e trabalhar com desenvolvimento de software, sempre considerei que a forma mais fácil e rápida para aprender uma nova tecnologia é utilizando-a. Por este motivo, a intenção foi escrever um livro prático, e nada mais justo do que começar demonstrando como instalar o Redis.
Em geral a instalação do Redis é uma tarefa bem simples para quem utiliza sistemas operacionais baseados no Unix. Porém, para quem usa Windows, esta tarefa pode não ser tão simples ou até mesmo recomendada.
Este livro foi escrito utilizando a versão 5.0.x do Redis.
1.1 Instalando no Unix, Linux e Mac OS
Para sistemas operacionais baseados no Unix, como Linux e Mac OS, a instalação pode ser feita a partir do código-fonte do Redis, disponível em: http://redis.io/download.
Uma outra opção seria realizar a instalação por um gerenciador de pacotes, como o HomeBrew (http://brew.sh) do Mac OS, ou o apt-get do Debian e seus derivados. Mas nos exemplos a seguir vou utilizar a instalação pelo código-fonte, pois isso pode ser realizado facilmente por qualquer sistema operacional baseado no Unix.
Veja a seguir como fazer a instalação a partir do código-fonte:
wget http://download.redis.io/releases/redis-5.0.x.tar.gz
tar zxvf redis-5.0.x.tar.gz
cd redis-5.0.x
make
No bloco de comandos anterior, o download do Redis é feito usando o programa de linha de comando wget. O x é o número do release, lembre-se de substituí-lo. Assim que o download estiver concluído, o arquivo é descompactado com o comando tar na pasta redis-5.0.x e, após a sua descompactação, é necessário realizar a compilação do código-fonte do Redis utilizando o comando make. A compilação pode demorar um pouco para terminar, mas, após o fim da execução desse comando, o Redis já está pronto para uso, e os arquivos binários gerados estarão acessíveis pela pasta src.
O programa wget não existe nativamente no Mac OS e, para resolver isso, podemos substituí-lo pelo programa curl, que consegue fazer o download de um arquivo pela linha de comando da seguinte forma:
curl http://download.redis.io/releases/redis-5.0.x.tar.gz
-o redis-5.0.x.tar.gz
1.2 Instalando no Windows
O Redis não suporta oficialmente o sistema operacional Windows, mas é possível instalá-lo no Windows seguindo os mesmos passos que usamos para Linux utilizando o Windows Subsystem for Linux (WSL) a partir da versão 10 (v1709) do Windows, ou usando uma solução de máquina virtual como o Virtualbox ou VMware.
1.3 Iniciando o Redis
Iniciar o Redis utilizando sua configuração padrão é uma tarefa extremamente simples e rápida. Para isso, acesse a pasta src, que contém os arquivos binários gerados pelo comando make, e execute:
./redis-server
Independente do sistema operacional usado, o Redis vai exibir uma saída bem parecida com a demonstrada a seguir:
Saída do servidor RedisFigura 1.1: Saída do servidor Redis
Não se preocupe com as mensagens geradas pelo Redis nesse momento, o importante agora é que o servidor do Redis está funcionando de forma adequada.
1.4 Olá Redis
Agora que já temos um servidor do Redis sendo executado, chegou o momento de realizarmos o famoso Olá Mundo
, que, neste exemplo, será um ola redis!
. Novamente, não se preocupe com os comandos usados a seguir, nem mesmo com os conceitos do Redis, pois tudo isso será explicado no decorrer do livro.
Precisamos utilizar uma aplicação cliente que consiga conectar a esse servidor do Redis. A distribuição do Redis já nos fornece um cliente de conexão, sendo que este é a forma mais simples e direta de interagir com o servidor do Redis. Ele é conhecido como CLI, que na língua inglesa significa command-line interface. A partir de agora, sempre que você encontrar a sigla CLI, lembre-se de que é uma referência ao cliente nativo para linha de comando do Redis.
O CLI encontra-se na mesma pasta onde o comando redis-server foi executado. Ele é um arquivo chamado redis-cli nas plataformas baseadas no Unix e redis-cli.exe na plataforma Windows.
Ao executar o CLI, será apresentada a seguinte interface:
./redis-cli
127.0.0.1:6379>
Agora chegou o momento de usarmos o Redis. Vamos iniciar usando o comando ECHO, que serve apenas para retornar uma mensagem enviada para ele por esse comando. Veja a seguir como fazer isso:
127.0.0.1:6379> ECHO ola redis!
ola redis!
Simples, não? O comando ECHO apenas apresentou a mensagem que passamos para ele como parâmetro. Agora vamos fazer algo um pouco mais prático. Imagine que temos de armazenar e exibir o nome do último usuário logado em um sistema em tempo real. Parece uma tarefa complicada, mas esse é o tipo de tarefa em que o uso do Redis se encaixa perfeitamente.
Para realizar isso, vou utilizar o comando SET, que recebe dois argumentos: uma chave e um valor. Veja o seguinte exemplo:
127.0.0.1:6379> SET ultimo_usuario_logado Bruce Banner
OK
No comando anterior, a chave usada foi ultimo_usuario_logado, cujo valor definimos como Bruce Banner
. Repare que, ao executar o comando, o CLI retornou o status OK
, informando que o comando foi executado corretamente. Agora vamos resgatar o nome do último usuário logado para que possamos apresentá-lo no sistema. Para ler o valor armazenado nessa chave, usaremos o comando GET conforme o exemplo a seguir:
127.0.0.1:6379> GET ultimo_usuario_logado
Bruce Banner
Para um último exemplo, imagine que o usuário acabou de sair do sistema e temos de removê-lo do Redis. Para isso, vamos utilizar o comando DEL que serve para remover um valor de acordo com a chave que ele recebe como parâmetro. Vamos executar o comando da seguinte forma:
127.0.0.1:6379> DEL ultimo_usuario_logado
(integer) 1
Dessa vez, o CLI nos retornou o número 1, que se refere à quantidade de chaves que foram removidas do Redis. Caso nenhuma chave tivesse sido removida, o CLI retornaria o valor 0.
Parabéns, você acabou de ter seu primeiro contato com o Redis e de entender como ele utiliza o conceito de armazenamento de dados no formato de chave-valor. No decorrer do livro, vou utilizar problemas que enfrentamos no dia a dia de desenvolvimento