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/

Escalando Aplicações com Redis

  • 1.
    Escalando Aplicações com Redis Waldyr Felix Consultor Chefe na FCamara Blog: waldyrfelix.net Twitter: @WaldyrFelix
  • 8.
    NoSQL Chave evalor 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
  • 13.
    Notação para chavesno 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# paraRedis • StackExchange.Redis • ServiceStack.Redis NServiceKit
  • 15.
  • 16.
  • 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.
  • 18.
  • 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 Cachecom 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
  • 22.
  • 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.
  • 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/