SlideShare una empresa de Scribd logo
1 de 15
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

Más contenido relacionado

La actualidad más candente

Minicurso Ruby e Rails (RailsMG UNA)
Minicurso Ruby e Rails (RailsMG UNA)Minicurso Ruby e Rails (RailsMG UNA)
Minicurso Ruby e Rails (RailsMG UNA)Daniel Lopes
 
Filosofia Ruby e Rails (UFOP e Inforuso 2010)
Filosofia Ruby e Rails (UFOP e Inforuso 2010)Filosofia Ruby e Rails (UFOP e Inforuso 2010)
Filosofia Ruby e Rails (UFOP e Inforuso 2010)Daniel Lopes
 
Escalabilidade com docker - ASP.NET Conference 2016
Escalabilidade com docker - ASP.NET Conference 2016Escalabilidade com docker - ASP.NET Conference 2016
Escalabilidade com docker - ASP.NET Conference 2016Rodolfo Fadino Junior
 
ASP.NET Core - iMasters - Março/2016
ASP.NET Core - iMasters - Março/2016ASP.NET Core - iMasters - Março/2016
ASP.NET Core - iMasters - Março/2016Renato Groff
 
TDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no MacTDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no MacAndre Baltieri
 
Minicurso - Banco de Dados NoSQL com .Net Core
Minicurso - Banco de Dados NoSQL com .Net CoreMinicurso - Banco de Dados NoSQL com .Net Core
Minicurso - Banco de Dados NoSQL com .Net CoreBruno Roldão
 
O caminho das pedras na construção de uma aplicação cloud friendly
O caminho das pedras na construção de uma aplicação cloud friendlyO caminho das pedras na construção de uma aplicação cloud friendly
O caminho das pedras na construção de uma aplicação cloud friendlyRicardo Faria
 
Monitorando Bancos Oracle - 2º ZABBIX MEETUP DO INTERIOR-SP
Monitorando Bancos Oracle - 2º ZABBIX MEETUP DO INTERIOR-SPMonitorando Bancos Oracle - 2º ZABBIX MEETUP DO INTERIOR-SP
Monitorando Bancos Oracle - 2º ZABBIX MEETUP DO INTERIOR-SPZabbix BR
 
L'esprit de l'escalier
L'esprit de l'escalierL'esprit de l'escalier
L'esprit de l'escalierGleicon Moraes
 
Integrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONIntegrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONMario Guedes
 
Zabbix - Alem da Infraestrutura - Parte 2
Zabbix - Alem da Infraestrutura - Parte 2Zabbix - Alem da Infraestrutura - Parte 2
Zabbix - Alem da Infraestrutura - Parte 2Luiz Sales
 
Análise estática de código Python
Análise estática de código PythonAnálise estática de código Python
Análise estática de código PythonGuilherme Vierno
 
Escalabilidade e Resiliência de Microservices em Python
Escalabilidade e Resiliência de Microservices em PythonEscalabilidade e Resiliência de Microservices em Python
Escalabilidade e Resiliência de Microservices em PythonGuilherme Vierno
 
SQL Server 2017 para Desenvolvedores de Software - SQL Saturday 715
SQL Server 2017 para Desenvolvedores de Software - SQL Saturday 715SQL Server 2017 para Desenvolvedores de Software - SQL Saturday 715
SQL Server 2017 para Desenvolvedores de Software - SQL Saturday 715Renato Groff
 
Os Desafios do Zabbix com Alta Disponibilidade - 3º Zabbix Meetup do Interior
Os Desafios do Zabbix com Alta Disponibilidade - 3º Zabbix Meetup do InteriorOs Desafios do Zabbix com Alta Disponibilidade - 3º Zabbix Meetup do Interior
Os Desafios do Zabbix com Alta Disponibilidade - 3º Zabbix Meetup do InteriorZabbix BR
 
Apresentacao zabbix
Apresentacao zabbixApresentacao zabbix
Apresentacao zabbixDaniel Peres
 

La actualidad más candente (19)

Minicurso Ruby e Rails (RailsMG UNA)
Minicurso Ruby e Rails (RailsMG UNA)Minicurso Ruby e Rails (RailsMG UNA)
Minicurso Ruby e Rails (RailsMG UNA)
 
Filosofia Ruby e Rails (UFOP e Inforuso 2010)
Filosofia Ruby e Rails (UFOP e Inforuso 2010)Filosofia Ruby e Rails (UFOP e Inforuso 2010)
Filosofia Ruby e Rails (UFOP e Inforuso 2010)
 
PHP - Aula #01
PHP - Aula #01PHP - Aula #01
PHP - Aula #01
 
DevOps com Python
DevOps com PythonDevOps com Python
DevOps com Python
 
Escalabilidade com docker - ASP.NET Conference 2016
Escalabilidade com docker - ASP.NET Conference 2016Escalabilidade com docker - ASP.NET Conference 2016
Escalabilidade com docker - ASP.NET Conference 2016
 
ASP.NET Core - iMasters - Março/2016
ASP.NET Core - iMasters - Março/2016ASP.NET Core - iMasters - Março/2016
ASP.NET Core - iMasters - Março/2016
 
TDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no MacTDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no Mac
 
Minicurso - Banco de Dados NoSQL com .Net Core
Minicurso - Banco de Dados NoSQL com .Net CoreMinicurso - Banco de Dados NoSQL com .Net Core
Minicurso - Banco de Dados NoSQL com .Net Core
 
O caminho das pedras na construção de uma aplicação cloud friendly
O caminho das pedras na construção de uma aplicação cloud friendlyO caminho das pedras na construção de uma aplicação cloud friendly
O caminho das pedras na construção de uma aplicação cloud friendly
 
Monitorando Bancos Oracle - 2º ZABBIX MEETUP DO INTERIOR-SP
Monitorando Bancos Oracle - 2º ZABBIX MEETUP DO INTERIOR-SPMonitorando Bancos Oracle - 2º ZABBIX MEETUP DO INTERIOR-SP
Monitorando Bancos Oracle - 2º ZABBIX MEETUP DO INTERIOR-SP
 
L'esprit de l'escalier
L'esprit de l'escalierL'esprit de l'escalier
L'esprit de l'escalier
 
Integrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONIntegrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSON
 
Zabbix - Alem da Infraestrutura - Parte 2
Zabbix - Alem da Infraestrutura - Parte 2Zabbix - Alem da Infraestrutura - Parte 2
Zabbix - Alem da Infraestrutura - Parte 2
 
Clojure
ClojureClojure
Clojure
 
Análise estática de código Python
Análise estática de código PythonAnálise estática de código Python
Análise estática de código Python
 
Escalabilidade e Resiliência de Microservices em Python
Escalabilidade e Resiliência de Microservices em PythonEscalabilidade e Resiliência de Microservices em Python
Escalabilidade e Resiliência de Microservices em Python
 
SQL Server 2017 para Desenvolvedores de Software - SQL Saturday 715
SQL Server 2017 para Desenvolvedores de Software - SQL Saturday 715SQL Server 2017 para Desenvolvedores de Software - SQL Saturday 715
SQL Server 2017 para Desenvolvedores de Software - SQL Saturday 715
 
Os Desafios do Zabbix com Alta Disponibilidade - 3º Zabbix Meetup do Interior
Os Desafios do Zabbix com Alta Disponibilidade - 3º Zabbix Meetup do InteriorOs Desafios do Zabbix com Alta Disponibilidade - 3º Zabbix Meetup do Interior
Os Desafios do Zabbix com Alta Disponibilidade - 3º Zabbix Meetup do Interior
 
Apresentacao zabbix
Apresentacao zabbixApresentacao zabbix
Apresentacao zabbix
 

Destacado

Web moderna além do Frontend com AngularJS
Web moderna além do Frontend com AngularJSWeb moderna além do Frontend com AngularJS
Web moderna além do Frontend com AngularJSJosé Roberto Araújo
 
Matando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaMatando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaJosé Roberto Araújo
 
Arquitetura agnóstica aplicada asp net6 + nodejs e redis
Arquitetura agnóstica aplicada   asp net6 + nodejs e redisArquitetura agnóstica aplicada   asp net6 + nodejs e redis
Arquitetura agnóstica aplicada asp net6 + nodejs e redisJosé Roberto Araújo
 
Asp net identity - De dentro das trincheiras
Asp net identity - De dentro das trincheirasAsp net identity - De dentro das trincheiras
Asp net identity - De dentro das trincheirasJosé Roberto Araújo
 
DDD na prática :: Implementação tática – Entidades vs Objeto de Valor
DDD na prática :: Implementação tática – Entidades vs Objeto de ValorDDD na prática :: Implementação tática – Entidades vs Objeto de Valor
DDD na prática :: Implementação tática – Entidades vs Objeto de ValorJosé Roberto Araújo
 
Serverles com Azure Functions & DocumentDB
Serverles com Azure Functions & DocumentDBServerles com Azure Functions & DocumentDB
Serverles com Azure Functions & DocumentDBJosé Roberto Araújo
 

Destacado (6)

Web moderna além do Frontend com AngularJS
Web moderna além do Frontend com AngularJSWeb moderna além do Frontend com AngularJS
Web moderna além do Frontend com AngularJS
 
Matando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaMatando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejista
 
Arquitetura agnóstica aplicada asp net6 + nodejs e redis
Arquitetura agnóstica aplicada   asp net6 + nodejs e redisArquitetura agnóstica aplicada   asp net6 + nodejs e redis
Arquitetura agnóstica aplicada asp net6 + nodejs e redis
 
Asp net identity - De dentro das trincheiras
Asp net identity - De dentro das trincheirasAsp net identity - De dentro das trincheiras
Asp net identity - De dentro das trincheiras
 
DDD na prática :: Implementação tática – Entidades vs Objeto de Valor
DDD na prática :: Implementação tática – Entidades vs Objeto de ValorDDD na prática :: Implementação tática – Entidades vs Objeto de Valor
DDD na prática :: Implementação tática – Entidades vs Objeto de Valor
 
Serverles com Azure Functions & DocumentDB
Serverles com Azure Functions & DocumentDBServerles com Azure Functions & DocumentDB
Serverles com Azure Functions & DocumentDB
 

Similar a AspNet 5 & Redis - Escalando sua performance

Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkMario Guedes
 
Desenvolvemos para web?
Desenvolvemos para web?Desenvolvemos para web?
Desenvolvemos para web?Luis Vendrame
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHPFelipe Ribeiro
 
ASP.NET Core APIs: Performance Tips
ASP.NET Core APIs: Performance TipsASP.NET Core APIs: Performance Tips
ASP.NET Core APIs: Performance TipsAndre Baltieri
 
Introdução ao ASP .NET Web API
Introdução ao ASP .NET Web APIIntrodução ao ASP .NET Web API
Introdução ao ASP .NET Web APIVinicius Mussak
 
Webservices em PHP e a liberdade da Web
Webservices em PHP e a liberdade da WebWebservices em PHP e a liberdade da Web
Webservices em PHP e a liberdade da WebAlexandre Andrade
 
Introdução a Microservices com Node.JS
Introdução  a Microservices com Node.JSIntrodução  a Microservices com Node.JS
Introdução a Microservices com Node.JSEduardo Nunes Pereira
 
Carreira de Desenvolvimento
Carreira de DesenvolvimentoCarreira de Desenvolvimento
Carreira de DesenvolvimentoAlvaro Viebrantz
 
4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdf4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdfRubenManhia
 
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando PimentaIniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando Pimentamichel adriano medeiros
 
Desenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack DeveloperDesenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack DeveloperCesar Romero
 
ClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpCampus Party Brasil
 
Fazendo barba, cabelo e bigode com REDIS
Fazendo barba, cabelo e bigode com REDISFazendo barba, cabelo e bigode com REDIS
Fazendo barba, cabelo e bigode com REDISMario Guedes
 

Similar a AspNet 5 & Redis - Escalando sua performance (20)

Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST Framework
 
Desenvolvemos para web?
Desenvolvemos para web?Desenvolvemos para web?
Desenvolvemos para web?
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
 
ASP.NET Core APIs: Performance Tips
ASP.NET Core APIs: Performance TipsASP.NET Core APIs: Performance Tips
ASP.NET Core APIs: Performance Tips
 
Introdução ao ASP .NET Web API
Introdução ao ASP .NET Web APIIntrodução ao ASP .NET Web API
Introdução ao ASP .NET Web API
 
Webservices em PHP e a liberdade da Web
Webservices em PHP e a liberdade da WebWebservices em PHP e a liberdade da Web
Webservices em PHP e a liberdade da Web
 
Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0
 
Rails asservice
Rails asserviceRails asservice
Rails asservice
 
Introdução a Microservices com Node.JS
Introdução  a Microservices com Node.JSIntrodução  a Microservices com Node.JS
Introdução a Microservices com Node.JS
 
Api todo list
Api todo listApi todo list
Api todo list
 
Carreira de Desenvolvimento
Carreira de DesenvolvimentoCarreira de Desenvolvimento
Carreira de Desenvolvimento
 
4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdf4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdf
 
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando PimentaIniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
 
Cache com redis novatec
Cache com redis novatecCache com redis novatec
Cache com redis novatec
 
Cache com redis novatec
Cache com redis novatecCache com redis novatec
Cache com redis novatec
 
Frameworks PHP
Frameworks PHPFrameworks PHP
Frameworks PHP
 
Preparando sua arquitetura para microservicos
Preparando sua arquitetura para microservicosPreparando sua arquitetura para microservicos
Preparando sua arquitetura para microservicos
 
Desenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack DeveloperDesenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack Developer
 
ClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs Php
 
Fazendo barba, cabelo e bigode com REDIS
Fazendo barba, cabelo e bigode com REDISFazendo barba, cabelo e bigode com REDIS
Fazendo barba, cabelo e bigode com REDIS
 

AspNet 5 & Redis - Escalando sua performance

  • 1. ASPNET 5 & REDIS ESCALE A PERFORMANCE DA SUA APLICAÇÃO
  • 2. 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 }
  • 3. UM POUCO DE HISTÓRIA AspNet Cache, 2003 • HttpRequest.Context.Cache Windows Server AppFabric, 2010 MemCached, 2003
  • 4. E O QUE TEMOS AGORA? Redis • Criado em 2009, por Salvatore Sanfilippo!
  • 5. 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
  • 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 Lists Sets HashesStrings
  • 9. 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
  • 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 • É um Pattern ? • Como funciona ? • Onde utilizo ?
  • 12. TRANSACTION ? • O que não é: • NÃO É IGUAL ao DB Transaction • O que é: • Como funciona? • Onde utilizo?
  • 13. SHOW ME THE CODE !!!
  • 14. REFERÊNCIAS • http://redis.io • https://hub.docker.com/_/redis • https://github.com/ServiceStack/ServiceStack.Redis
  • 15. OBRIGADO !!! Dúvidas ? Exemplo utilizado: Github