Download - Escalando Aplicações com Redis

Transcript
Page 1: Escalando Aplicações com Redis

Escalando Aplicações com Redis

Waldyr FelixConsultor Chefe na FCamaraBlog: waldyrfelix.netTwitter: @WaldyrFelix

Page 2: Escalando Aplicações com Redis
Page 3: Escalando Aplicações com Redis
Page 4: Escalando Aplicações com Redis
Page 5: Escalando Aplicações com Redis
Page 6: Escalando Aplicações com Redis
Page 7: Escalando Aplicações com Redis
Page 8: Escalando Aplicações com Redis

NoSQL

Chave e valor

Memória

Disco

Replicação

Cache

Banco de Dados

Page 9: Escalando Aplicações com Redis

Tipos de Dados

• Strings• Lists• Sets• Sorted sets• Hashes

Page 10: Escalando Aplicações com Redis

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

Page 11: Escalando Aplicações com Redis

Client e Server

• Executar o aplicativo e o servidor está no ar• Sintaxe simples • Economia de transações

Page 12: Escalando Aplicações com Redis
Page 13: Escalando Aplicações com Redis

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” “[email protected]

Page 14: Escalando Aplicações com Redis

API C# para Redis

• StackExchange.Redis • ServiceStack.Redis NServiceKit

Page 15: Escalando Aplicações com Redis

ServiceStack.Redis é Open mas não é FREE

Page 16: Escalando Aplicações com Redis

NServiceKit.Redis

Page 17: Escalando Aplicações com 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.

Page 18: Escalando Aplicações com Redis

Para saber mais:

Page 19: Escalando Aplicações com Redis

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

Page 20: Escalando Aplicações com Redis

Exemplo de Cache com Redis

• Redis• NServiceKit.Redis• Postsharp• Aplicação ~12x mais rápida

Page 21: Escalando Aplicações com Redis

App

Cache Distribuído

• Acesso remoto• Suporte a replicação• Segurança integrada• Configuração simples

Cache

VM1

VM3

VM2

Page 22: Escalando Aplicações com Redis

Amazon ElastiCache Redis

Page 23: Escalando Aplicações com 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.

Page 24: Escalando Aplicações com Redis

Azure Redis Cache (Preview)

Page 25: Escalando Aplicações com Redis

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.