SlideShare uma empresa Scribd logo
1 de 26
Escalando Aplicações com 
Redis 
Waldyr Felix 
Consultor Chefe na FCamara 
Blog: waldyrfelix.net 
Twitter: @WaldyrFelix
NoSQL 
Chave e valor 
Memória 
Disco 
Replicação 
Cache 
Banco de Dados
Tipos de Dados 
• Strings 
• Lists 
• Sets 
• Sorted sets 
• Hashes
Instalação 
wget http://download.redis.io/releases/redis-2.8.14.tar.gz 
tar xzf redis-2.8.14.tar.gz 
cd redis-2.8.14 
make 
Baixar o Zip 
Descompactar 
No Linux 
No Windows
Client e Server 
• Executar o aplicativo e o servidor está no ar 
• Sintaxe simples 
• Economia de transações
Notação para chaves no Redis 
• Armazenamento de objetos “indexados” 
> set “usuario:8372” “Waldyr Felix” 
• Armazenamento de objetos complexos 
> set “usuario:3433:nome” “Waldyr Felix” 
> set “usuario:3433:email” “waldyr.felix@fcamara.com.br”
API C# para Redis 
• StackExchange.Redis 
• ServiceStack.Redis NServiceKit
ServiceStack.Redis é Open mas não é FREE
NServiceKit.Redis
Cache -Aside Pattern 
• Otimização de acessos 
repetidos a alguma informação 
• Armazenamento intermediário 
mais rápido que o original 
• Deve ser transparente para a 
aplicação 
• Uso de AOP minimiza o 
impacto na implementação 
• Pode ser local ou distribuído.
Para saber mais:
Redis como Cache 
• Interface ICacheClient 
• Usa o comando SETEX 
> setex “usuario:3433:nome” 120 “Waldyr Felix” 
> set “usuario:3433:nome” “Waldyr Felix” 
> expire “usuario:3433:nome” 120
Exemplo de Cache com Redis 
• Redis 
• NServiceKit.Redis 
• Postsharp 
• Aplicação ~12x mais rápida
App 
Cache Distribuído 
• Acesso remoto 
• Suporte a replicação 
• Segurança integrada 
• Configuração simples 
Cache 
VM1 
VM3 
VM2
Amazon ElastiCache Redis
Amazon ElastiCache Redis 
Os End Points da Amazon só podem ser acessados pelos próprios Data Centers, ou 
seja, para testar precisamos fazer um deployment no AWS.
Azure Redis Cache (Preview)
Azure Redis Cache (Preview) 
Os End Points de cache do Microsoft Azure podem ser acessados externamente 
usando chaves de acesso, da mesma forma que acessamos Azure Storage.
Referências 
• http://redis.io/documentation 
• https://github.com/ServiceStack/ServiceStack.Redis 
• https://github.com/NServiceKit/NServiceKit 
• http://azure.microsoft.com/pt-br/documentation/articles/cache-dotnet- 
how-to-use-azure-redis-cache/ 
• http://aws.amazon.com/pt/elasticache/

Mais conteúdo relacionado

Mais procurados

Alta perfomance de aplicações PHP com Nginx
Alta perfomance de aplicações PHP com NginxAlta perfomance de aplicações PHP com Nginx
Alta perfomance de aplicações PHP com Nginx
Thiago Paes
 

Mais procurados (20)

Análise de segurança e hacking de containers Docker - Fernando Silva - Tcheli...
Análise de segurança e hacking de containers Docker - Fernando Silva - Tcheli...Análise de segurança e hacking de containers Docker - Fernando Silva - Tcheli...
Análise de segurança e hacking de containers Docker - Fernando Silva - Tcheli...
 
Microserviços - Cristiano dos Santos Diedrich - Tchelinux Bento Gonçalves 2017
Microserviços - Cristiano dos Santos Diedrich - Tchelinux Bento Gonçalves 2017Microserviços - Cristiano dos Santos Diedrich - Tchelinux Bento Gonçalves 2017
Microserviços - Cristiano dos Santos Diedrich - Tchelinux Bento Gonçalves 2017
 
Aula PIT 3 - Ambientes
Aula PIT 3 - AmbientesAula PIT 3 - Ambientes
Aula PIT 3 - Ambientes
 
Hands on para (web)Developers Docker vs Vagrant
Hands on para (web)Developers Docker vs VagrantHands on para (web)Developers Docker vs Vagrant
Hands on para (web)Developers Docker vs Vagrant
 
HOST079 - Docker
HOST079 - DockerHOST079 - Docker
HOST079 - Docker
 
Escalando Sites com Nginx
Escalando Sites com NginxEscalando Sites com Nginx
Escalando Sites com Nginx
 
Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014
 
Terraform + Kops + Kubernetes na AWS
Terraform + Kops + Kubernetes na AWSTerraform + Kops + Kubernetes na AWS
Terraform + Kops + Kubernetes na AWS
 
TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...
TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...
TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...
 
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
 
Economize o Consumo de Link WAN com o BranchCache
Economize o Consumo de Link WAN com o BranchCacheEconomize o Consumo de Link WAN com o BranchCache
Economize o Consumo de Link WAN com o BranchCache
 
Introdução ao Ceph - Leonardo Vaz - Tchelinux Bento Gonçalves 2017
Introdução ao Ceph - Leonardo Vaz - Tchelinux Bento Gonçalves 2017Introdução ao Ceph - Leonardo Vaz - Tchelinux Bento Gonçalves 2017
Introdução ao Ceph - Leonardo Vaz - Tchelinux Bento Gonçalves 2017
 
Disaster Recovery usando Windows Server 2012 R2, Microsoft System Center 2012...
Disaster Recovery usando Windows Server 2012 R2, Microsoft System Center 2012...Disaster Recovery usando Windows Server 2012 R2, Microsoft System Center 2012...
Disaster Recovery usando Windows Server 2012 R2, Microsoft System Center 2012...
 
Unix te da asas
Unix te da asasUnix te da asas
Unix te da asas
 
Open Source Cloud Computing - Leonardo Vaz - Tchelinux Bento Gonçalves 2017
Open Source Cloud Computing - Leonardo Vaz - Tchelinux Bento Gonçalves 2017Open Source Cloud Computing - Leonardo Vaz - Tchelinux Bento Gonçalves 2017
Open Source Cloud Computing - Leonardo Vaz - Tchelinux Bento Gonçalves 2017
 
Gerenciamento de endereços ip com php ipam
Gerenciamento de endereços ip com php ipamGerenciamento de endereços ip com php ipam
Gerenciamento de endereços ip com php ipam
 
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...
Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento d...
 
Filtro de conteúdo Proxy
Filtro de conteúdo   ProxyFiltro de conteúdo   Proxy
Filtro de conteúdo Proxy
 
Alta perfomance de aplicações PHP com Nginx
Alta perfomance de aplicações PHP com NginxAlta perfomance de aplicações PHP com Nginx
Alta perfomance de aplicações PHP com Nginx
 
5 - segurança - firewall
5  - segurança - firewall5  - segurança - firewall
5 - segurança - firewall
 

Destaque

Integrando aplicações com redis
Integrando aplicações com redisIntegrando aplicações com redis
Integrando aplicações com redis
Felipe Monteiro
 
Bancos orientados a colunas (Cassandra)
Bancos orientados a colunas (Cassandra) Bancos orientados a colunas (Cassandra)
Bancos orientados a colunas (Cassandra)
Otávio Santana
 
Bancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDBBancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDB
Paulo Bischof
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e Paralela
Adriano Teixeira de Souza
 

Destaque (20)

Integrando aplicações com redis
Integrando aplicações com redisIntegrando aplicações com redis
Integrando aplicações com redis
 
Empreendendo com Informática
Empreendendo com InformáticaEmpreendendo com Informática
Empreendendo com Informática
 
Template Canvas - Business Model Generation
Template Canvas - Business Model GenerationTemplate Canvas - Business Model Generation
Template Canvas - Business Model Generation
 
Culture Code
Culture CodeCulture Code
Culture Code
 
Escalando aplicação Python usando Getup OpenShift
Escalando aplicação Python usando Getup OpenShiftEscalando aplicação Python usando Getup OpenShift
Escalando aplicação Python usando Getup OpenShift
 
Bancos de dados open source
Bancos de dados open sourceBancos de dados open source
Bancos de dados open source
 
01 aula1 habib
01 aula1 habib01 aula1 habib
01 aula1 habib
 
Bancos orientados a colunas (Cassandra)
Bancos orientados a colunas (Cassandra) Bancos orientados a colunas (Cassandra)
Bancos orientados a colunas (Cassandra)
 
Redis – What, Why, When, How?
Redis – What, Why, When, How?Redis – What, Why, When, How?
Redis – What, Why, When, How?
 
Algumas das principais características do NoSQL
Algumas das principais características do NoSQLAlgumas das principais características do NoSQL
Algumas das principais características do NoSQL
 
Bancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDBBancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDB
 
549891
549891549891
549891
 
Deploy completo de uma aplicação Django
Deploy completo de uma aplicação DjangoDeploy completo de uma aplicação Django
Deploy completo de uma aplicação Django
 
Big data da teoria à prática
Big data  da teoria à práticaBig data  da teoria à prática
Big data da teoria à prática
 
Redis um banco chave valor
Redis um banco chave valorRedis um banco chave valor
Redis um banco chave valor
 
Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1
 
Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2
 
Sistemas Operacionais - 2 - Tipos de Sistemas Computacionais
Sistemas Operacionais - 2 - Tipos de Sistemas ComputacionaisSistemas Operacionais - 2 - Tipos de Sistemas Computacionais
Sistemas Operacionais - 2 - Tipos de Sistemas Computacionais
 
Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e Paralela
 

Semelhante a Escalando Aplicações com Redis

MongoDB - Apresentação
MongoDB - ApresentaçãoMongoDB - Apresentação
MongoDB - Apresentação
Terra / Neo
 

Semelhante a Escalando Aplicações com Redis (20)

LDAP
LDAPLDAP
LDAP
 
5. rodando containers docker na aws
5. rodando containers docker na aws5. rodando containers docker na aws
5. rodando containers docker na aws
 
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
OpenShift: NoSQL  "a la carte"  num PaaS 100% Open SourceOpenShift: NoSQL  "a la carte"  num PaaS 100% Open Source
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
 
Aws sao paulo summit 2015 elasti cache avancado
Aws sao paulo summit 2015   elasti cache avancadoAws sao paulo summit 2015   elasti cache avancado
Aws sao paulo summit 2015 elasti cache avancado
 
PHP e Redis
PHP e RedisPHP e Redis
PHP e Redis
 
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
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
 
Aceleração em Hardware para OpenSSL em Sistemas Embarcados: Introdução e conc...
Aceleração em Hardware para OpenSSL em Sistemas Embarcados: Introdução e conc...Aceleração em Hardware para OpenSSL em Sistemas Embarcados: Introdução e conc...
Aceleração em Hardware para OpenSSL em Sistemas Embarcados: Introdução e conc...
 
What's New On Azure IaaS
What's New On Azure IaaSWhat's New On Azure IaaS
What's New On Azure IaaS
 
Migrando seu workload de Big Data para o Amazon EMR
Migrando seu workload de Big Data para o Amazon EMRMigrando seu workload de Big Data para o Amazon EMR
Migrando seu workload de Big Data para o Amazon EMR
 
Copa do mundo no brasil interagindo com os torcedores em tempo real
Copa do mundo no brasil   interagindo com os torcedores em tempo realCopa do mundo no brasil   interagindo com os torcedores em tempo real
Copa do mundo no brasil interagindo com os torcedores em tempo real
 
Mongo db slides
Mongo db slidesMongo db slides
Mongo db slides
 
Como construir sua primeira aplicação de Big Data na AWS
Como construir sua primeira aplicação de Big Data na AWSComo construir sua primeira aplicação de Big Data na AWS
Como construir sua primeira aplicação de Big Data na AWS
 
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
 
Build e release pipeline com docker
Build e release pipeline com dockerBuild e release pipeline com docker
Build e release pipeline com docker
 
Mit 01
Mit 01Mit 01
Mit 01
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
 
MongoDB - Apresentação
MongoDB - ApresentaçãoMongoDB - Apresentação
MongoDB - Apresentação
 
Escalabilidade com Redis
Escalabilidade com Redis Escalabilidade com Redis
Escalabilidade com Redis
 

Mais de Waldyr Felix

Explorando Microsoft Fakes
Explorando Microsoft FakesExplorando Microsoft Fakes
Explorando Microsoft Fakes
Waldyr Felix
 
Usando Scrum com Team Foundation Server 2012
Usando Scrum com Team Foundation Server 2012Usando Scrum com Team Foundation Server 2012
Usando Scrum com Team Foundation Server 2012
Waldyr Felix
 
ASP.NET WebAPI HTTP Basic Auth
ASP.NET WebAPI HTTP Basic AuthASP.NET WebAPI HTTP Basic Auth
ASP.NET WebAPI HTTP Basic Auth
Waldyr Felix
 

Mais de Waldyr Felix (20)

Apache Kafka: Comunicando microsserviços com performance
Apache Kafka: Comunicando microsserviços com performanceApache Kafka: Comunicando microsserviços com performance
Apache Kafka: Comunicando microsserviços com performance
 
Kubernetes: Escalando containers do Docker
Kubernetes: Escalando containers do DockerKubernetes: Escalando containers do Docker
Kubernetes: Escalando containers do Docker
 
A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão ...
A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão ...A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão ...
A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão ...
 
HTTP/2. O que você precisa saber a nova versão do HTTP.
HTTP/2. O que você precisa saber a nova versão do HTTP.HTTP/2. O que você precisa saber a nova versão do HTTP.
HTTP/2. O que você precisa saber a nova versão do HTTP.
 
ECMAScript 6 / ECMAScript 2015 no Node.js
ECMAScript 6 / ECMAScript 2015 no Node.jsECMAScript 6 / ECMAScript 2015 no Node.js
ECMAScript 6 / ECMAScript 2015 no Node.js
 
Performance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.jsPerformance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.js
 
Ionic + Cordova para Desenvolvimento Mobile
Ionic + Cordova para Desenvolvimento MobileIonic + Cordova para Desenvolvimento Mobile
Ionic + Cordova para Desenvolvimento Mobile
 
Microservices com ASP.NET 5
Microservices com ASP.NET 5Microservices com ASP.NET 5
Microservices com ASP.NET 5
 
ASP.NET SignalR + SPA com AngularJS
ASP.NET SignalR + SPA com AngularJSASP.NET SignalR + SPA com AngularJS
ASP.NET SignalR + SPA com AngularJS
 
Sistema de Notificações com SignalR TDC 2014
Sistema de Notificações com SignalR TDC 2014Sistema de Notificações com SignalR TDC 2014
Sistema de Notificações com SignalR TDC 2014
 
ASP.NET MVC 5.x
ASP.NET MVC 5.xASP.NET MVC 5.x
ASP.NET MVC 5.x
 
ASP.NET MVC & Entity Framework
ASP.NET MVC & Entity FrameworkASP.NET MVC & Entity Framework
ASP.NET MVC & Entity Framework
 
ASP.NET WEB API
ASP.NET WEB APIASP.NET WEB API
ASP.NET WEB API
 
Produtividade na criação de websites com ASP.NET MVC
Produtividade na criação de websites com ASP.NET MVCProdutividade na criação de websites com ASP.NET MVC
Produtividade na criação de websites com ASP.NET MVC
 
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web APITrilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
 
Asp.net web api
Asp.net web apiAsp.net web api
Asp.net web api
 
Explorando Microsoft Fakes
Explorando Microsoft FakesExplorando Microsoft Fakes
Explorando Microsoft Fakes
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
 
Usando Scrum com Team Foundation Server 2012
Usando Scrum com Team Foundation Server 2012Usando Scrum com Team Foundation Server 2012
Usando Scrum com Team Foundation Server 2012
 
ASP.NET WebAPI HTTP Basic Auth
ASP.NET WebAPI HTTP Basic AuthASP.NET WebAPI HTTP Basic Auth
ASP.NET WebAPI HTTP Basic Auth
 

Escalando Aplicações com Redis

  • 1. Escalando Aplicações com Redis Waldyr Felix Consultor Chefe na FCamara Blog: waldyrfelix.net Twitter: @WaldyrFelix
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8. NoSQL Chave e valor Memória Disco Replicação Cache Banco de Dados
  • 9. Tipos de Dados • Strings • Lists • Sets • Sorted sets • Hashes
  • 10. Instalação wget http://download.redis.io/releases/redis-2.8.14.tar.gz tar xzf redis-2.8.14.tar.gz cd redis-2.8.14 make Baixar o Zip Descompactar No Linux No Windows
  • 11. Client e Server • Executar o aplicativo e o servidor está no ar • Sintaxe simples • Economia de transações
  • 12.
  • 13. Notação para chaves no Redis • Armazenamento de objetos “indexados” > set “usuario:8372” “Waldyr Felix” • Armazenamento de objetos complexos > set “usuario:3433:nome” “Waldyr Felix” > set “usuario:3433:email” “waldyr.felix@fcamara.com.br”
  • 14. API C# para Redis • StackExchange.Redis • ServiceStack.Redis NServiceKit
  • 15. ServiceStack.Redis é Open mas não é FREE
  • 17. Cache -Aside Pattern • Otimização de acessos repetidos a alguma informação • Armazenamento intermediário mais rápido que o original • Deve ser transparente para a aplicação • Uso de AOP minimiza o impacto na implementação • Pode ser local ou distribuído.
  • 19. Redis como Cache • Interface ICacheClient • Usa o comando SETEX > setex “usuario:3433:nome” 120 “Waldyr Felix” > set “usuario:3433:nome” “Waldyr Felix” > expire “usuario:3433:nome” 120
  • 20. Exemplo de Cache com Redis • Redis • NServiceKit.Redis • Postsharp • Aplicação ~12x mais rápida
  • 21. App Cache Distribuído • Acesso remoto • Suporte a replicação • Segurança integrada • Configuração simples Cache VM1 VM3 VM2
  • 23. Amazon ElastiCache Redis Os End Points da Amazon só podem ser acessados pelos próprios Data Centers, ou seja, para testar precisamos fazer um deployment no AWS.
  • 24. Azure Redis Cache (Preview)
  • 25. Azure Redis Cache (Preview) Os End Points de cache do Microsoft Azure podem ser acessados externamente usando chaves de acesso, da mesma forma que acessamos Azure Storage.
  • 26. Referências • http://redis.io/documentation • https://github.com/ServiceStack/ServiceStack.Redis • https://github.com/NServiceKit/NServiceKit • http://azure.microsoft.com/pt-br/documentation/articles/cache-dotnet- how-to-use-azure-redis-cache/ • http://aws.amazon.com/pt/elasticache/