redis para iniciantes - tdc 2014

Post on 05-Dec-2014

469 Views

Category:

Software

6 Downloads

Preview:

Click to see full reader

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

mgalves@gmail.com

http://github.com/mgalves/

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

Me livrei da minha conta no facebook.

Wednesday, August 6, 14

top related