Top Banner
Miguel Galves | @mgalves Redis para iniciantes | TDC2014 REDIS PARA INICIANTES Wednesday, August 6, 14
28

Redis para iniciantes - TDC 2014

Dec 05, 2014

Download

Software

Miguel Galves

Palestra "REDIS para iniciantes", apresentada na trilha NoSQL do TDC 2014 em São Paulo (06/08/2014(.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Redis para iniciantes - TDC 2014

Miguel Galves | @mgalves Redis para iniciantes | TDC2014

REDIS PARA INICIANTES

Wednesday, August 6, 14

Page 2: Redis para iniciantes - TDC 2014

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

Page 3: Redis para iniciantes - TDC 2014

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

Page 4: Redis para iniciantes - TDC 2014

Wednesday, August 6, 14

Page 5: Redis para iniciantes - TDC 2014

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

Page 6: Redis para iniciantes - TDC 2014

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

Page 7: Redis para iniciantes - TDC 2014

Miguel Galves | @mgalves Redis para iniciantes | TDC2014

Chave

string

Ex: 5, _key, key

Valor

stringint

floatlistset

sorted set

hash

Wednesday, August 6, 14

Page 8: Redis para iniciantes - TDC 2014

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

Page 9: Redis para iniciantes - TDC 2014

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

Page 10: Redis para iniciantes - TDC 2014

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

Page 11: Redis para iniciantes - TDC 2014

Miguel Galves | @mgalves Redis para iniciantes | TDC2014

LEGAL, MAS COMO USO ISTO NO MEU SISTEMA?

Wednesday, August 6, 14

Page 12: Redis para iniciantes - TDC 2014

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

Page 13: Redis para iniciantes - TDC 2014

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

Page 14: Redis para iniciantes - TDC 2014

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

Page 15: Redis para iniciantes - TDC 2014

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

Page 16: Redis para iniciantes - TDC 2014

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

Page 17: Redis para iniciantes - TDC 2014

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

Page 18: Redis para iniciantes - TDC 2014

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

Page 19: Redis para iniciantes - TDC 2014

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

Page 20: Redis para iniciantes - TDC 2014

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

Page 21: Redis para iniciantes - TDC 2014

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

Page 22: Redis para iniciantes - TDC 2014

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

Page 23: Redis para iniciantes - TDC 2014

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

Page 24: Redis para iniciantes - TDC 2014

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

Page 25: Redis para iniciantes - TDC 2014

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

Page 26: Redis para iniciantes - TDC 2014

Todas esta linguagens possuem bibliotecas e drivers

Thursday, July 24, 14

Todas estas linguagem possuem libs e drivers para REDIS

Wednesday, August 6, 14

Page 27: Redis para iniciantes - TDC 2014

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

Page 28: Redis para iniciantes - TDC 2014

Miguel Galves | @mgalves Redis para iniciantes | TDC2014

obrigado ;)

@mgalves

[email protected]

http://github.com/mgalves/

http://br.linkedin.com/in/mgalves

Me livrei da minha conta no facebook.

Wednesday, August 6, 14