6. Dafuck Redis?
• Remote Dictionary Server
• Armazenamento chave-valor
• ... lista e executa operações
7. Dafuck Redis?
• Remote Dictionary Server
• Armazenamento chave-valor
• ... lista e executa operações
• Um servidor de estrutura de dados
8. Dafuck Redis?
• Remote Dictionary Server
• Armazenamento chave-valor
• ... lista e executa operações
• Um servidor de estrutura de dados
• ... tem pub/sub e notificações
9. Dafuck Redis?
• Remote Dictionary Server
• Armazenamento chave-valor
• ... lista e executa operações
• Um servidor de estrutura de dados
• ... tem pub/sub e notificações
• Um bus de evento sem bloqueio
10. Dafuck Redis?
• Remote Dictionary Server
• Armazenamento chave-valor
• ... lista e executa operações
• Um servidor de estrutura de dados
• ... tem pub/sub e notificações
• Um bus de evento sem bloqueio
• Uma memória compartilhada acessível via
rede
12. Seja o que for...
• Mothafuckamente rápido!
• Non-blocking I/O, um único segmento
• 100,000+ escrita/leitura por segundo
• Pequeno: ~16,000 linhas de código C
• Escala para “baixo”: Amigável até mesmo com um
simples VPS
• Faz um novo tipo de recurso - em particular para
escritas pesadas - viável para pequenas aplicações
• Complementa sua camada de armazenamento
14. Breve histórico
• Criado por Salvatore Sanfilippo
( antirez )
• Primeiro release: Março/2009
• “Adquirido” pela VMWare em Março
de 2010
• Open Source ( BSD )
19. Inicio de tudo!
$ git clone git://github.com/antirez/redis
$ cd redis
$ make
$ ./redis-server
20.
21. Chaves
• Chaves não devem conter espaços em
branco!
• ( essa restrição foi removida na versão 1.2)
• Chaves curtas performam melhor
• Convenção comum: tipo-de-objeto:id:campo
• user:23:username = manolo
• SHA1(data) Pode ser uma chave útil também
23. Tipos de dados
• Binary-safe strings ( até 10GB )
• listas
• conjuntos
• Conjuntos sortidos
• (Cada chave possuí uma pontuação)
• hashes
• Canais pub/sub
24. Comandos da base de
dados
• SELECT
• MOVE
• FLUSHDB
• FLUSHALL
• SHUTDOWN
• SLAVEOF
• DBSIZE
• INFO
• MONITOR
• SAVE / BGSAVE
• LASTSAVE
• BGREWRITEAOF
25. Comandos da base de
dados
• SELECT
• MOVE
• FLUSHDB 16 bases
• FLUSHALL numeradas
• SHUTDOWN
• SLAVEOF
• DBSIZE
• INFO
• MONITOR
• SAVE / BGSAVE
• LASTSAVE
• BGREWRITEAOF
26. Comandos da base de
dados
• SELECT
• MOVE
• FLUSHDB Exclusão em
• FLUSHALL massa
• SHUTDOWN
• SLAVEOF
• DBSIZE
• INFO
• MONITOR
• SAVE / BGSAVE
• LASTSAVE
• BGREWRITEAOF
27. Comandos da base de
dados
• SELECT
• MOVE
• FLUSHDB Útil para
• FLUSHALL debugging e
• SHUTDOWN monitoramento
• SLAVEOF
• DBSIZE
• INFO
• MONITOR
• SAVE / BGSAVE
• LASTSAVE
• BGREWRITEAOF
29. Comandos atomicos
• GETSET [chave valor]
• Seta o novo valor e retorna o anterior
• SETNX [chave valor]
• Falha se a chave já está setada
• MSETNX [ c1 v1 c2 v2 c3 v3 ... ]
• Falha se ALGUMA chave já existir
34. Hashes
HMSET user name Kinn email kinncj@php.net
HGET user email
> kinncj@php.net
HKEYS user
> name
> email
HGETALL user
> name
> Kinn
> email
> kinncj@php.net