ASPNET 5 & REDIS
ESCALE A PERFORMANCE DA SUA
APLICAÇÃO
APRESENTAÇÃO
Palestrante: José Roberto Araújo
• MCP | Palestrante | Arquiteto de Sistemas
Onde me encontrar?
• Grupos:
• @AspNet BR
• @Academia .Net para Zumbis
• @CrazyTechGuys
• @Slideshare { /jroberto.jr }
• @Facebook { /joserobertoaraujo }
• @Twitter { @jrobertofaraujo }
• @Linkedin { /joserobertoaraujo }
• @Blog { http://www.jrobertoaraujo.net }
UM POUCO DE HISTÓRIA
AspNet Cache, 2003
• HttpRequest.Context.Cache
Windows Server AppFabric, 2010
MemCached, 2003
E O QUE TEMOS AGORA?
Redis
• Criado em 2009, por Salvatore Sanfilippo!
O REDIS
• O que é ?
• Remote Dictionary Server
• In-Memory Key-Value
• Open-Source e escrito em C
• Script LUA
• Leve
• Desenvolvida em C ANSI
• Master-Slave
• Redundância de persistência
• Alto nível de estrutura de dados
• Suporta operações atômicas usando
transação
• Expiração de Chave
• Vários bibliotecas Clientes
• Onde encontro ?
• Azure
• Amazon
• Docker
• Vagrant
QUEM ESTÁ USANDO ?
Twitter
Pintrest
Airbnb
Medium.com
Udemy
Stackoverflow
Instacart
INFORMAÇÕES SÃO ARMAZENADAS :: KEY-VALUE
• Pode-se também chamar de base NoSQL
• Todos os dados são armazenados no formado Key-Value
• Os valores podem ser armazenados como: string, int, boolean, double
TIPOS DE ARMAZENAMENTO
Lists Sets HashesStrings
COMO ARMAZENAR MEUS DADOS ?
• Nenhum dado dentro do Redis é relacional, Mas... Podemos relaciona-los
• Você precisa analisar que tipo de informação precisa ser armazenada
• Procure retornar apenas o que é necessário para sua aplicação
• Quase todo GET, necessitará de um FETCH
PIPELINE ?
• Comando ‘Pipeline’
• Nâo são Transacionais
• Entrega um lote de comandos sem necessitar de respostas
• O Cliente armazena todos os comandos até sua execução
• Outra forma de reduzir a latência associada ao grande volume de comandos:
• Otimiza o throughput na rede
• Reduz a quantidade de comandos enviados pelos clientes
• Load Batch usando o LINUX
• Performance
• cat [Arquivo.txt] | redis-cli --pipe
PUB/SUB
• É um Pattern ?
• Como funciona ?
• Onde utilizo ?
TRANSACTION ?
• O que não é:
• NÃO É IGUAL ao DB Transaction
• O que é:
• Como funciona?
• Onde utilizo?
SHOW ME THE CODE
!!!
REFERÊNCIAS
• http://redis.io
• https://hub.docker.com/_/redis
• https://github.com/ServiceStack/ServiceStack.Redis
OBRIGADO !!!
Dúvidas ?
Exemplo utilizado: Github

AspNet 5 & Redis - Escalando sua performance

  • 1.
    ASPNET 5 &REDIS ESCALE A PERFORMANCE DA SUA APLICAÇÃO
  • 2.
    APRESENTAÇÃO Palestrante: José RobertoAraújo • MCP | Palestrante | Arquiteto de Sistemas Onde me encontrar? • Grupos: • @AspNet BR • @Academia .Net para Zumbis • @CrazyTechGuys • @Slideshare { /jroberto.jr } • @Facebook { /joserobertoaraujo } • @Twitter { @jrobertofaraujo } • @Linkedin { /joserobertoaraujo } • @Blog { http://www.jrobertoaraujo.net }
  • 3.
    UM POUCO DEHISTÓRIA AspNet Cache, 2003 • HttpRequest.Context.Cache Windows Server AppFabric, 2010 MemCached, 2003
  • 4.
    E O QUETEMOS AGORA? Redis • Criado em 2009, por Salvatore Sanfilippo!
  • 5.
    O REDIS • Oque é ? • Remote Dictionary Server • In-Memory Key-Value • Open-Source e escrito em C • Script LUA • Leve • Desenvolvida em C ANSI • Master-Slave • Redundância de persistência • Alto nível de estrutura de dados • Suporta operações atômicas usando transação • Expiração de Chave • Vários bibliotecas Clientes • Onde encontro ? • Azure • Amazon • Docker • Vagrant
  • 6.
    QUEM ESTÁ USANDO? Twitter Pintrest Airbnb Medium.com Udemy Stackoverflow Instacart
  • 7.
    INFORMAÇÕES SÃO ARMAZENADAS:: KEY-VALUE • Pode-se também chamar de base NoSQL • Todos os dados são armazenados no formado Key-Value • Os valores podem ser armazenados como: string, int, boolean, double
  • 8.
    TIPOS DE ARMAZENAMENTO ListsSets HashesStrings
  • 9.
    COMO ARMAZENAR MEUSDADOS ? • Nenhum dado dentro do Redis é relacional, Mas... Podemos relaciona-los • Você precisa analisar que tipo de informação precisa ser armazenada • Procure retornar apenas o que é necessário para sua aplicação • Quase todo GET, necessitará de um FETCH
  • 10.
    PIPELINE ? • Comando‘Pipeline’ • Nâo são Transacionais • Entrega um lote de comandos sem necessitar de respostas • O Cliente armazena todos os comandos até sua execução • Outra forma de reduzir a latência associada ao grande volume de comandos: • Otimiza o throughput na rede • Reduz a quantidade de comandos enviados pelos clientes • Load Batch usando o LINUX • Performance • cat [Arquivo.txt] | redis-cli --pipe
  • 11.
    PUB/SUB • É umPattern ? • Como funciona ? • Onde utilizo ?
  • 12.
    TRANSACTION ? • Oque não é: • NÃO É IGUAL ao DB Transaction • O que é: • Como funciona? • Onde utilizo?
  • 13.
    SHOW ME THECODE !!!
  • 14.
    REFERÊNCIAS • http://redis.io • https://hub.docker.com/_/redis •https://github.com/ServiceStack/ServiceStack.Redis
  • 15.