CACHE COM REDIS
Carlos Rodrigues - MCP
Who am I ?
• Garoto de programa há + de 10 anos
• Palestrante no Net Coders.
• Trabalhei em empresas como IBM, Ericsson,
Odebrecht e mais um monte por ai.
• Gosto de codar em qualquer coisa.
• Introdução ao Redis.
• Casos comuns de utilização do Redis.
• Quem utiliza o Redis ?
• Benchmark Redis vs Memched
• Demo e Benchmark WebApi.
–EntityFramework vs Redis
Agenda
Redis é um ferramenta avançada de
armazenamento de dados do tipo chave-valor
(Key-Value).
Este armazenamento ocorre essencialmente na
memória RAM, evitando I/O de discos.
Ele oferece uma estrutura de servidor de dados
e tem um Api muito rica.
http://redis.io
REmote DIctionary Server
Tipo de Dados
• String
• Hash
• Lists
• Sets
• Sorted Sets
• Bitmaps
• Hyperlogs
Instalação
• Redis é nasceu no Linux
• http://redis.io/download
• https://github.com/MSOpenTech/redis/releas
es
• No Windows é só baixar, descompactar e
executar o redis-server.exe.
• Pode configurar como serviço se quiser.
Commands
Keys [padão] = Listas todas as chaves que estão no cache
Set [chave valor] = "Guarda um valor"
Setex[chave tempo valor] = Guarda um valor e informa o
tempo de expiração
Get[chave] = Pegar o valor de uma chave
Del[chave] = Apaga chave
Outros Comandos e detalhes http://redis.io/commands
Linguagens com driver
Clients for C#
ServiceStack.Redis - É open source mas não é
free.
NServiceKit - é um fork do ServiceStack.Redis
StackExchange.Redis
http://redis.io/clients#c
Tipos Comuns de Utilização
• Cache de Dados / Conteudo
–Combo-boxes - Paginas estáticas
• Gerenciamento de Sessões
–Guarde um Hash com inf. do usuário e a função Expire os
inválida após seu timeout
• Tabelas de Classificação
–Usando SORTED SET é possível ja ter em memória uma
lista/tabela pré-processada.
•Filas / Menssageria
Quem usa redis ?
Benchmark Redis vs Memchached
DEMO FINAL – Show me The Code
Cache vs EntityFrameWork
CACHE
Transactions: 97 hits
Availability: 100.00 %
Elapsed time: 30.01 secs
Data transferred: 25.23 MB
Response time: 5.05 secs
Transaction rate: 3.23
trans/sec
Throughput: 0.84
MB/sec
Concurrency: 16.31
Successful transactions: 97
Failed transactions: 0
Longest transaction: 13.95
Shortest transaction: 1.73
EntityFrameWork
Transactions: 58 hits
Availability: 100.00 %
Elapsed time: 29.75 secs
Data transferred: 15.09 MB
Response time: 8.06 secs
Transaction rate: 1.95
trans/sec
Throughput: 0.51
MB/sec
Concurrency: 15.72
Successful transactions: 58
Failed transactions: 0
Longest transaction: 19.95
Shortest transaction: 1.46
siege.exe -c20 -t30s http://localhost:41011/api/Products
Referencias
http://redis.io/
http://waldyrfelix.net/2014/10/01/palestra-escalando-aplicacoes-com-redis-
dnad-2014/
http://oldblog.antirez.com/post/redis-memcached-benchmark.html
https://github.com/NServiceKit/NServiceKit.Redis
https://code.google.com/p/siege-windows/
https://www.jetbrains.com/decompiler/download/download_thanks.jsp?os=
dp
http://pt.slideshare.net/miguelgalves/redis-37761090?qid=ec9e9ca5-94bd-
4896-bc69-9e837a2ed1b2&v=qf1&b=&from_search=1
http://pt.slideshare.net/profpv/redis-php2014?qid=ec9e9ca5-94bd-4896-
bc69-9e837a2ed1b2&v=qf1&b=&from_search=2
Contatos
@carlossj
carlosrodriguesjunior@gmail.com

Cache com redis novatec