cache com redis novatec

16
CACHE COM REDIS Carlos Rodrigues - MCP

Upload: carlos-rodrigues-junior

Post on 09-Aug-2015

73 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Cache com redis novatec

CACHE COM REDIS

Carlos Rodrigues - MCP

Page 2: Cache com redis novatec

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.

Page 3: Cache com redis novatec

• 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

Page 4: Cache com redis novatec

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

Page 5: Cache com redis novatec

Tipo de Dados

• String• Hash• Lists• Sets• Sorted Sets• Bitmaps• Hyperlogs

Page 6: Cache com redis novatec

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.

Page 7: Cache com redis novatec

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çãoGet[chave] = Pegar o valor de uma chaveDel[chave] = Apaga chaveOutros Comandos e detalhes http://redis.io/commands

Page 8: Cache com redis novatec

Linguagens com driver

Page 9: Cache com redis novatec

Clients for C#

ServiceStack.Redis - É open source mas não é free.

NServiceKit - é um fork do ServiceStack.Redis

StackExchange.Redis

http://redis.io/clients#c

Page 10: Cache com redis novatec

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

Page 11: Cache com redis novatec

Quem usa redis ?

Page 12: Cache com redis novatec

Benchmark Redis vs Memchached

Page 13: Cache com redis novatec

DEMO FINAL – Show me The Code

Page 14: Cache com redis novatec

Cache vs EntityFrameWork

CACHE

Transactions: 97 hitsAvailability: 100.00 %Elapsed time: 30.01 secsData transferred: 25.23 MBResponse time: 5.05 secsTransaction rate: 3.23 trans/secThroughput: 0.84 MB/secConcurrency: 16.31Successful transactions: 97Failed transactions: 0Longest transaction: 13.95Shortest transaction: 1.73

EntityFrameWork

Transactions: 58 hitsAvailability: 100.00 %Elapsed time: 29.75 secsData transferred: 15.09 MBResponse time: 8.06 secsTransaction rate: 1.95 trans/secThroughput: 0.51 MB/secConcurrency: 15.72Successful transactions: 58Failed transactions: 0Longest transaction: 19.95Shortest transaction: 1.46

siege.exe -c20 -t30s http://localhost:41011/api/Products

Page 15: Cache com redis novatec

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.htmlhttps://github.com/NServiceKit/NServiceKit.Redishttps://code.google.com/p/siege-windows/https://www.jetbrains.com/decompiler/download/download_thanks.jsp?os=dphttp://pt.slideshare.net/miguelgalves/redis-37761090?qid=ec9e9ca5-94bd-4896-bc69-9e837a2ed1b2&v=qf1&b=&from_search=1http://pt.slideshare.net/profpv/redis-php2014?qid=ec9e9ca5-94bd-4896-bc69-9e837a2ed1b2&v=qf1&b=&from_search=2