Aprendendo redis (parte 1) - Quickstart

Antes de tudo - Instalar e rodar o Redis

Dica: Se você não quer/pode instalar o redis no momento, pule esta parte e use esse console na web para testar os exemplos do artigo aqui.

Para download, instalação e como rodar, se dirija a essa página.
Após baixar e instalar o redis, rode o servidor através do binário redis-server (na linha de comando para Linux/Mac ou duplo-clique no Windows).
Você vai ver algo do tipo:

# Server started, Redis version 2.8.4* The server is now ready to accept connections on port 6379

Com o servidor rodando, (em outro terminal) execute o binário redis-cli, é nele que vamos rodar os testes a seguir.
Você vai ver algo assim na linha de comando:

127.0.0.1:6379>

Tudo pronto? Então vamos lá!

O que é o Redis?

É um banco de dados NoSQL que guarda os registros no formato “chave-valor”, com muitos recursos avançados.
Ou seja, guarda um valor referente a uma chave, e esse valor só pode ser acessado mais tarde se você souber exatamente qual é a chave. Parecido com um dicionário (python), hash (ruby) ou objeto (javascript).
Ex:

> set nome "John Constantine"OK> get nome"John Constantine""

Aqui o valor “John Constantine” foi guardado na chave nome.
Esse é o tipo de dado mais básico, na verdade o redis expõe 5 tipos de dados que podem ser armazenados (mais sobre isso adiante).

Características, o que faz o redis especial?

Facilidade de aprendizado

Comandos breves e simples, uma boa documentação e facilidade de por em prática fazem do Redis uma tecnologia muito fácil de divertida de se aprender.

Velocidade

O Redis guarda todos seus dados em memória (podem ser salvos em disco), tendo assim alta velocidade de leitura e escrita.

Especialização

Diferente de um banco de dados relacional - onde as tabelas são meios genéricos para se criar diversas soluções - o Redis possui alguns tipos especializados que o torna capaz de solucionar alguns problemas de forma rápida e fácil.

Tipos

A seguir vamos ver os 5 tipos que o Redis pode manipular, a cada comando mostrado, testem nas suas máquinas e verifiquem os valores.

Strings

O tipo mais básico do Redis, o valor é uma string que pode conter qualquer caracter.

# Guarda um valor na chaveset alguma_coisa "Uma _string_ que vai ser guardada na chave alguma_coisa, blz?"# Retorna o valor da chaveget alguma_coisa

A partir dai os tipos ficam um pouco mais complexos, sempre seguindo a lógica que existem métodos para armazenar e ler valores de uma chave do seu tipo, cada comando é exclusivo ao tipo de dado usado, ex: set e get só funcionam para o tipo string.

Hashes

Semelhantes ao dicionário do python, o valor de um hash pode guardar vários pares chave:valor.
Um detalhe sobre o próximo exemplo, criei a chave de nome “bloggers:max”, percebam que isso é só um nome comum, nada especial para o tipo hash, é só um jeito de organizar as chaves que torna mais fácil procurar por elas.

# Colocar o hash {"sexo": "masculino} na chave bloggers:maxhset bloggers:max sexo masculino# Obtem o valor do indice "sexo" do hash bloggers:maxhget bloggers:max sexo# Para criar um hash com varias chaves de uma vez use o comando:hmset bloggers:max sexo masculino cidade Natal# Obtendo todos os itens do hash (chaves e valores)hgetall bloggers:max# Obtendo as chaves do hashhkeys bloggers:max# Removendo uma chavehdel bloggers:max cidade

Listas

Como o nome diz, guarda uma lista de valores em uma chave, também conhecido como array e vetor em outras linguagens.

# Adiciona valores ao final da lista bloggers (se a lista nao existir, é criada uma nova)lpush bloggers maxlpush bloggers lucas# Limita a lista a ter somente 10 valores, do indice 0 ao indice 9 (apaga os que vierem depois do 9)ltrim bloggers 0 9# Lista todos os valores do indice 0 ao indice 50lrange bloggers 0 50# Lista todos os valores da lista (de 0 a -1 uma maneira de dizer "ate o ultimo", assim como em python)lrange bloggers 0 -1
 

Conjuntos

A diferença de conjuntos para listas, é que os valores contidos em conjunto devem ser unicos, na lista pode ter o mesmo valor várias vezes.

# Adicionando valores no conjuntosadd amigos:Monica Cebolinha Magali# Outro conjuntosadd amigos:Cebolinha Cascao Monica# Verifica se um valor faz parte do conjunto (retorna 1 se fizer parte, e 0 se nao)sismember amigos:Monica Magali# Lista todos os membros de um conjuntosmembers amigos:Monica

Conjuntos ordenados

São como conjuntos, mas com a capacidade de ordenação e rank através de um número (score).

# Adicionando itens ao conjunto posicões, cada item consiste de um score e uma stringzadd posicoes 8 massa 4 hamilton 2 alonso 5 raikkonen# Descobrir os pilotos que estao nas primeiras 5 posicõeszcount posicões 1 5# Descobrir o rank de massazrank posicoes massa

Concluindo

Este foi um guia rápido onde você aprendeu como instalar, executar e realizar testes no Redis, também falamos dos 5 tipos de dados do Redis. Cenas dos próximos capítulos: A vantagem de cada tipo, queries, gerência e monitoramento, pubsub.
Dica: O console na web mencionado anteriormente também serve como um tutorial interativo muito bacana, veja aqui.

Written with StackEdit.