redis para iniciantes - tdc 2014
DESCRIPTION
Palestra "REDIS para iniciantes", apresentada na trilha NoSQL do TDC 2014 em São Paulo (06/08/2014(.TRANSCRIPT
Miguel Galves | @mgalves Redis para iniciantes | TDC2014
REDIS PARA INICIANTES
Wednesday, August 6, 14
Miguel Galves | @mgalves Redis para iniciantes | TDC2014
OBJETIVO DE HOJE
Mostrar em 15 minutos o que você pode fazer com o REDIS e porque ele vai ser imprescindível a partir
de hoje nos seus projetos.
Wednesday, August 6, 14
Miguel Galves | @mgalves Redis para iniciantes | TDC2014
QUEM USA ESTE TAL DE REDIS?
Será mais um projeto obscuro do mundo do Software Livre utilizado por meia duzia de geeks?
Wednesday, August 6, 14
Wednesday, August 6, 14
Miguel Galves | @mgalves Redis para iniciantes | TDC2014
Como instalar e rodar o REDIS?
Site Oficial: http://redis.io/
$ wget http://download.redis.io/releases/redis-2.8.13.tar.gz$ tar xzf redis-2.8.13.tar.gz$ cd redis-2.8.13$ make
Servidor
$ src/redis-server
Cliente
$ src/redis-cliredis> set foo barOKredis> get foo"bar"
Wednesday, August 6, 14
Miguel Galves | @mgalves Redis para iniciantes | TDC2014
REmote DIctionary Server
•Sistema de par chave / valor•Dados em memória•Arquitetura Cliente / Servidor•Escrito em C•Open Source •https://github.com/antirez/redis
Wednesday, August 6, 14
Miguel Galves | @mgalves Redis para iniciantes | TDC2014
Chave
string
Ex: 5, _key, key
Valor
stringint
floatlistset
sorted set
hash
Wednesday, August 6, 14
Miguel Galves | @mgalves Redis para iniciantes | TDC2014
string “um texto”
int 4
float 2,3
list [1, 2, “a”, 2, “texto”]
set (1, 2, “a”, “texto”)
sortedset [(1, 2), (2, 4), (“a”, 5), (“texto”, 20)]
nome Miguel
idade 34
sexo Masculino
hash
Wednesday, August 6, 14
Miguel Galves | @mgalves Redis para iniciantes | TDC2014
Além de gravar e ler valores, é possível manipular os dados internamente.
Exemplos:
•modificar string•incrementar / decrementar números •operações binárias•operações com estruturas de dados
http://redis.io/commands/
Wednesday, August 6, 14
Miguel Galves | @mgalves Redis para iniciantes | TDC2014
Outros diferenciais
•Persistência em disco (failback)•Pipelining•Transações•Replicação Master / Slave•Scripting com Lua•Clustering (em versão beta)
Wednesday, August 6, 14
Miguel Galves | @mgalves Redis para iniciantes | TDC2014
LEGAL, MAS COMO USO ISTO NO MEU SISTEMA?
Wednesday, August 6, 14
Miguel Galves | @mgalves Redis para iniciantes | TDC2014
Cache
REDIS pode ser usado como um cache de dados e conteúdo, no estilo Memcached.
Wednesday, August 6, 14
Miguel Galves | @mgalves Redis para iniciantes | TDC2014
Gerenciamento de sessão
Um dicionário (hash) armazena os vários campos da sessão, e a chave de acesso é o ID da sessão.
A função EXPIRE permite que sessões sejam automaticamente invalidadas após um período (timeout).
Wednesday, August 6, 14
Miguel Galves | @mgalves Redis para iniciantes | TDC2014
Tabela de classificação
Uso de conjunto ordenado (SORTED SET) permite manter, atualizar e consultar tabelas de classificação em tempo real. Muito útil para jogos.
Wednesday, August 6, 14
Miguel Galves | @mgalves Redis para iniciantes | TDC2014
Filas (mensagens, task, ...)
Filas são um elemento constante em qualquer programa.
A primitiva LIST oferece todas as funcionalidades, incluindo operações bloqueantes, úteis para implementação de filas de mensagens e tarefas.
Wednesday, August 6, 14
Miguel Galves | @mgalves Redis para iniciantes | TDC2014
Base de dados
Bibliotecas de ODM (Object Data Mapper) implementam funcionalidades de mapemento de objetos em “tabelas”, indexação, busca típicas de SGBD.
Importante saber das limitações e usar com parcimônia.
https://github.com/mgalves/redisco
Wednesday, August 6, 14
Miguel Galves | @mgalves Redis para iniciantes | TDC2014
Pub / Sub
Implementação pronta de PubSubHub: consumidores podem assinar canais de conteúdo, e produtores podem publicar conteúdos em canais.
Wednesday, August 6, 14
Miguel Galves | @mgalves Redis para iniciantes | TDC2014
Invente a sua...
Uma combinação apropriada de nome de chave e de estruturas de dados permitem uma infinidade de possibilidades.
Invente a sua!
Wednesday, August 6, 14
Miguel Galves | @mgalves Redis para iniciantes | TDC214
E COMO REDIS É USADO NO “MUNDO REAL” ?
Como foi mostrado anteriormente, empresas famosas usam REDIS.
Vamos dar uma espiadinha?
Wednesday, August 6, 14
Miguel Galves | @mgalves Redis para iniciantes | TDC2014
REDIS é utilizado como cache web
560MM de pageviews / mês54 site no mundo40MM de respostas25 servidores
Wednesday, August 6, 14
Miguel Galves | @mgalves Redis para iniciantes | TDC2014
REDIS utilizado para armazenar a homeline dos usuários, em listas com tamanho máximo de 800 elementos.
30 bilhões de updates por dia400.000.000 de tweets por dia5000 tweets por segundo
Wednesday, August 6, 14
Miguel Galves | @mgalves Redis para iniciantes | TDC2014
Gestão de configurações de deploy.
Roteamento de requests: mapeamento de servidores associados a usuários.
3,5 milhões de usuários6 milhões de repositórios
Wednesday, August 6, 14
Miguel Galves | @mgalves Redis para iniciantes | TDC2014
REDIS utilizado como indice complementar ao MySQL, tornando buscas mais rápidas e reduzindo a carga sobre base de dados.
Além disso, usa sistema de PubSub para notificações de eventos em tempo real.
1.6 milhões de uploads por dia92 milhões de usuários
Wednesday, August 6, 14
Miguel Galves | @mgalves Redis para iniciantes | TDC2014
REDIS é utilizado para armazenamento do grafo social de usuários.
70MM de usuários53MM de acessos únicos / mês Média de 67 followers por usuário
Wednesday, August 6, 14
Miguel Galves | @mgalves Redis para iniciantes | TDC214
E COM QUEM REDIS CONVERSA?
Consigo integrar REDIS no meu projeto?Eu uso a linguagem X...
Wednesday, August 6, 14
Todas esta linguagens possuem bibliotecas e drivers
Thursday, July 24, 14
Todas estas linguagem possuem libs e drivers para REDIS
Wednesday, August 6, 14
Miguel Galves | @mgalves Redis para iniciantes | TDC2014
EM RESUMO
Ferramenta madura e com comunidade ativaTestada e aprovada em grande escala no mundo real
Rápida, eficiente e extremamente versátil
Simplifica seu stack, substituindo uma série de outras ferramentas
Wednesday, August 6, 14
Miguel Galves | @mgalves Redis para iniciantes | TDC2014
obrigado ;)
@mgalves
http://github.com/mgalves/
http://br.linkedin.com/in/mgalves
Me livrei da minha conta no facebook.
Wednesday, August 6, 14