vidor do Redis. A distribuição do Redis já nos fornece um cliente de conexão, sendo que esse cliente é 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 que é uma referência ao cliente nativo para linha de comando do Redis.
4
Casa do Código
Capítulo 1. Começando com o 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:
rodrigolazoti@MacBook-Pro:~/redis-2.8.x/src => ./redis-cli
redis 127.0.0.1:6379>
Agora chegou o momento de utilizarmos o Redis. Vamos iniciar usando
o comando ECHO, que serve apenas para retornar uma mensagem enviada
para ele através desse comando. Veja a seguir como fazer isso:
redis 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 tenhamos que armazenar e exibir o nome do ultimo
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:
redis 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 co-
mando, o CLI retornou o status OK, informando que o comando foi exe-
cutado corretamente. Agora vamos resgatar o nome do último usuário lo-
gado para que possamos apresentá-lo no sistema. Para ler o valor armazenado nessa chave, utilizaremos o comando GET conforme o exemplo a seguir:
redis 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 que 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:
5
1.5. Próximos passos
Casa do Código
redis 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 teria retornado o valor 0.
Parabéns, você acabou de ter seu primeiro contato com o Redis e de en-
tender como ele utiliza o conceito de armazenamento de dados no formato
de chave-valor. No decorrer do livro, irei utilizar problemas que enfrentamos no dia a dia de desenvolvimento de software para exemplificar os recursos do Redis abordados aqui.
1.5
Próximos passos
Agora já temos nosso servidor instalado. Aproveitamos e testamos a confi-
guração, adicionando usuários ao banco de dados através do cliente da linha de comando. Claro que, quando estivermos trabalhando com uma aplicação,
implementada em alguma linguagem de programação, vamos precisar fazer
toda essa comunicação com o banco através da linguagem usada.
No próximo capítulo, vamos aprender como fazer isso através do Java e
começar a trabalhar com o Redis através da linguagem de programação, para
conseguirmos criar programas interessantes.
6
Capítulo 2
Conhecendo o Redis
Redis significa REmote DIctionary Server. Diferente de um banco de dados tradicional como MySQL ou Oracle, é categorizado como um banco de dados
não relacional, sendo muitas vezes referenciado pela sigla NOSQL (Not Only
SQL). O Redis foi criado por Salvatore Sanfilippo [16], também conhecido na internet por antirez, que liberou o Redis em 2009 de forma open-source
sob a licença BSD [13].
Uma característica muito importante sobre o Redis é que ele armazena
seus dados em memória, embora seja possível persistir os dados fisicamente.
Mas é o fato de o Redis armazenar os dados em memória que o torna extre-
mamente rápido, tanto para escrita como para leitura de dados. Uma outra
característica importante é que todos os comandos executados no Redis são
atômicos, e isso é garantido pela forma com que o Redis é executado, que é
como uma aplicação single-threaded (enquanto um comando está sendo exe-
cutado, nenhum outro comando será executado) [6].
2.1. O que o Redis não é
Casa do Código
Como vimos no capítulo 1, o Redis armazena os dados na forma de chave-
valor, mas um ponto interessante sobre a estrutura de dados do Redis é que o valor contido na chave de um registro suporta diferentes formatos que podem ser strings, hashes, lists, sets e sets ordenados. Todos esses formatos (também conhecidos como estruturas de dados) que acabei de apresentar serão
demonstrados no decorrer do livro.
O Redis é um servidor TCP que faz uso do modelo cliente-servidor [11].