A apresentação discute como Redis pode ser usado para escalar o desempenho de aplicações ASP.NET, descrevendo suas principais características como armazenamento de dados em memória chave-valor, suporte a estruturas de dados complexas e operações atômicas. Também mostra exemplos de como usar pipelines e pub/sub no Redis.
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
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?