SlideShare uma empresa Scribd logo
1 de 13
Escalabilidade com Redis
Turbinando o Sistema com Redis
Mario?
• Arquiteto de Soluções Digitais
• Embarcadero MVP desde 2016
• 20+ anos desenvolvendo software
• Delphi, Python, Lua, JavaScript, C++
• PostgreSQL, MongoDB, Redis, Neo4J, Cassandra
• Experiência em sistemas críticos 24x7
• Em todas as redes: /jmarioguedes
• Iniciando a arrayOF Treinamento e Assessoria
• Com foco em modernização de soluções legadas
• mario.guedes@arrayof.com.br
Agenda
• Mario?
• O que é Redis?
• Possibilidades com o Redis?
• Exemplo prático
• Redis no Windows
• Q&A
REmote
DIctionary
Server
http://redis.io/
O que é o Redis?
• Banco noSQL orientado a chavevalor
• Imagine um grande arquivo INI
• Armazena os dados na memória RAM
• “Velocidade, eu sou a velocidade”
• Possui vários tipos de dados e operações, oferecendo
diversas possibilidades
• Suporte à expiração automática de dados: TTL
• Suporte à execução de scripts em Lua
• Funcionamento em cluster
Possibilidades com o Redis
• Cacheamento lado servidor:
• “O processamento mais rápido é aquele que não é feito”
• Cuidados com invalidação e revalidação de cache
• Isso aliviará a carga no seu banco principal
• Serviço de mensageria por oferecer PUB/SUB e enfileiramento de comandos
FIFO
• Armazenamento de sessões de usuário para compartilhar entre várias
instâncias
• Manutenção de dashboards em tempo real
• Funcionamento off-line como em PDVs
Por isso a promessa de Escalabilidade
• “Escalabilidade indica a capacidade do sistema em
manipular uma porção crescente de trabalho de forma
uniforme, ou estar preparado para crescer.”
• https://pt.wikipedia.org/wiki/Escalabilidade
• O Redis nos provê escalabilidade por responder
extremamente rápido às solicitações.
• Podemos adotar, então, a escala horizontal do backend com
abordagem de micro serviços.
Chave
• A chave é uma string ou array de bytes
• Evite nomes longos
• Use hash MD5 se for o caso
• Hierarquize com “:” e um com o finalizador “#”
• CODERAGE:BRASIL:2019:REDIS#
• Para listar as chaves temos:
• * Vários caracteres subsequentes
• ? Qualquer caractere em uma determinada posição
• [] Conjunto de caracteres específico em uma determinada posição
Valor
• É um array de bytes podendo representar:
• String
• Hash
• Lista
• Conjuntos
• Mapa de bits
• Entre outros
Redis no Windows
• Não há suporte oficial ao Windows
• Há uma portabilização antiga suficientemente boa em:
http://bit.ly/redis_windows
• Mas considere executar o Redis mais atual em uma VM ou
Docker.
Redis no Delphi
• O protocolo de comunicação com o Redis é extremamente
simples e baseado em texto:
https://redis.io/topics/protocol
• Recomendo a biblioteca desenvolvida pelo Daniele Teti:
http://www.danieleteti.it/redis-client/
RECAP
• O Redis é estratégico
• Cuidados ao executar no
S.O. Windows
• Para mensageria é
suficientemente bom porém
cogite o RabbitMQ
• O Redis não substituirá o seu
banco de dados
• O Redis não é só o que foi
mostrado aqui
• mario.guedes@arrayof.com.br
• github.com/jmarioguedes/CodeRage2019_Redis.git
• arrayof.com.br

Mais conteúdo relacionado

Semelhante a Escalabilidade com Redis: Turbinando o Sistema

O que é e como devo usar o REDIS? - 1o Mobile REST Summit
O que é e como devo usar o REDIS? - 1o Mobile REST SummitO que é e como devo usar o REDIS? - 1o Mobile REST Summit
O que é e como devo usar o REDIS? - 1o Mobile REST SummitMario Guedes
 
Microsserviço, Escalabilidade e Resiliência - #comofas?
Microsserviço, Escalabilidade e Resiliência - #comofas?Microsserviço, Escalabilidade e Resiliência - #comofas?
Microsserviço, Escalabilidade e Resiliência - #comofas?Mario Guedes
 
Turbinando o seu sistema com Redis!
Turbinando o seu sistema com Redis!Turbinando o seu sistema com Redis!
Turbinando o seu sistema com Redis!Mario Guedes
 
Tecnologias para sistemas distribuidos escalaveis
Tecnologias para sistemas distribuidos escalaveisTecnologias para sistemas distribuidos escalaveis
Tecnologias para sistemas distribuidos escalaveisLuiz Bettega
 
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
 
Intensive Delphi 2017 - E este tal de Redis hein?
Intensive Delphi 2017 - E este tal de Redis hein?Intensive Delphi 2017 - E este tal de Redis hein?
Intensive Delphi 2017 - E este tal de Redis hein?Mario Guedes
 
SQL Server Heterogêneo: SQL Server + BigData
SQL Server Heterogêneo: SQL Server + BigDataSQL Server Heterogêneo: SQL Server + BigData
SQL Server Heterogêneo: SQL Server + BigDataRodrigo Dornel
 
AspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performanceAspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performanceJosé Roberto Araújo
 
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o AzureQCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o AzureFabrício Lopes Sanchez
 
Sql saturday joinville 2019 sql server 2019 Big Data Clustes
Sql saturday  joinville 2019   sql server 2019 Big Data ClustesSql saturday  joinville 2019   sql server 2019 Big Data Clustes
Sql saturday joinville 2019 sql server 2019 Big Data ClustesLuiz Henrique Garetti Rosário
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edtedbrunoaalves
 
Bancos NoSQL no Microsoft Azure
Bancos NoSQL no Microsoft AzureBancos NoSQL no Microsoft Azure
Bancos NoSQL no Microsoft AzureJoel Rodrigues
 
TDCSP - 2018 - Possibilidades com o REDIS no Delphi
TDCSP - 2018 - Possibilidades com o REDIS no DelphiTDCSP - 2018 - Possibilidades com o REDIS no Delphi
TDCSP - 2018 - Possibilidades com o REDIS no DelphiMario Guedes
 
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 REDISArrayOf.io
 

Semelhante a Escalabilidade com Redis: Turbinando o Sistema (20)

Cache com redis novatec
Cache com redis novatecCache com redis novatec
Cache com redis novatec
 
O que é e como devo usar o REDIS? - 1o Mobile REST Summit
O que é e como devo usar o REDIS? - 1o Mobile REST SummitO que é e como devo usar o REDIS? - 1o Mobile REST Summit
O que é e como devo usar o REDIS? - 1o Mobile REST Summit
 
Microsserviço, Escalabilidade e Resiliência - #comofas?
Microsserviço, Escalabilidade e Resiliência - #comofas?Microsserviço, Escalabilidade e Resiliência - #comofas?
Microsserviço, Escalabilidade e Resiliência - #comofas?
 
Turbinando o seu sistema com Redis!
Turbinando o seu sistema com Redis!Turbinando o seu sistema com Redis!
Turbinando o seu sistema com Redis!
 
Tecnologias para sistemas distribuidos escalaveis
Tecnologias para sistemas distribuidos escalaveisTecnologias para sistemas distribuidos escalaveis
Tecnologias para sistemas distribuidos escalaveis
 
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
 
Sql server 2019 big data cluster
Sql server 2019 big data clusterSql server 2019 big data cluster
Sql server 2019 big data cluster
 
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
 
Intensive Delphi 2017 - E este tal de Redis hein?
Intensive Delphi 2017 - E este tal de Redis hein?Intensive Delphi 2017 - E este tal de Redis hein?
Intensive Delphi 2017 - E este tal de Redis hein?
 
SQL Server Heterogêneo: SQL Server + BigData
SQL Server Heterogêneo: SQL Server + BigDataSQL Server Heterogêneo: SQL Server + BigData
SQL Server Heterogêneo: SQL Server + BigData
 
AspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performanceAspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performance
 
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o AzureQCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
 
Sql saturday joinville 2019 sql server 2019 Big Data Clustes
Sql saturday  joinville 2019   sql server 2019 Big Data ClustesSql saturday  joinville 2019   sql server 2019 Big Data Clustes
Sql saturday joinville 2019 sql server 2019 Big Data Clustes
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edted
 
Web Scale Data Management
Web Scale Data ManagementWeb Scale Data Management
Web Scale Data Management
 
Preparando sua arquitetura para microservicos
Preparando sua arquitetura para microservicosPreparando sua arquitetura para microservicos
Preparando sua arquitetura para microservicos
 
Bancos NoSQL no Microsoft Azure
Bancos NoSQL no Microsoft AzureBancos NoSQL no Microsoft Azure
Bancos NoSQL no Microsoft Azure
 
TDCSP - 2018 - Possibilidades com o REDIS no Delphi
TDCSP - 2018 - Possibilidades com o REDIS no DelphiTDCSP - 2018 - Possibilidades com o REDIS no Delphi
TDCSP - 2018 - Possibilidades com o REDIS no Delphi
 
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
 
Meetup Tivir - Big Data Clusters
Meetup Tivir - Big Data ClustersMeetup Tivir - Big Data Clusters
Meetup Tivir - Big Data Clusters
 

Mais de Mario Guedes

Integrando-se à Blockchain da Ethereum
Integrando-se à Blockchain da EthereumIntegrando-se à Blockchain da Ethereum
Integrando-se à Blockchain da EthereumMario Guedes
 
Entendendo HTTP para entender o REST
Entendendo HTTP para entender o RESTEntendendo HTTP para entender o REST
Entendendo HTTP para entender o RESTMario Guedes
 
Expressão Regular - Cookbook
Expressão Regular - CookbookExpressão Regular - Cookbook
Expressão Regular - CookbookMario Guedes
 
Geolocalização com Redis e Google Maps
Geolocalização com Redis e Google MapsGeolocalização com Redis e Google Maps
Geolocalização com Redis e Google MapsMario Guedes
 
Foco no app, viva o serverless!
Foco no app, viva o serverless!Foco no app, viva o serverless!
Foco no app, viva o serverless!Mario Guedes
 
Geolocalização com Redis e Google Maps
Geolocalização com Redis e Google MapsGeolocalização com Redis e Google Maps
Geolocalização com Redis e Google MapsMario Guedes
 
Paralelismo na prática: Threads de uma vez por todas e sem medo!
Paralelismo na prática: Threads de uma vez por todas e sem medo!Paralelismo na prática: Threads de uma vez por todas e sem medo!
Paralelismo na prática: Threads de uma vez por todas e sem medo!Mario Guedes
 
Escalando o backend com NGINX e Redis
Escalando o backend com NGINX e RedisEscalando o backend com NGINX e Redis
Escalando o backend com NGINX e RedisMario Guedes
 
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...Mario Guedes
 
Extreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiExtreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiMario Guedes
 
BOT: Conversando com o seu sistema
BOT: Conversando com o seu sistemaBOT: Conversando com o seu sistema
BOT: Conversando com o seu sistemaMario Guedes
 
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...Mario Guedes
 
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuários
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuáriosExtreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuários
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuáriosMario Guedes
 
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDBArquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDBMario Guedes
 
Big data da teoria à prática
Big data  da teoria à práticaBig data  da teoria à prática
Big data da teoria à práticaMario Guedes
 
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
 
Delphi Parallel Programming Library
Delphi Parallel Programming LibraryDelphi Parallel Programming Library
Delphi Parallel Programming LibraryMario Guedes
 
Nova Infraestrutura JSON: System.JSON na prática
Nova Infraestrutura JSON: System.JSON na prática Nova Infraestrutura JSON: System.JSON na prática
Nova Infraestrutura JSON: System.JSON na prática Mario Guedes
 
Abertura - GruPy-SP | G4 Solutions - Agosto 2015
Abertura - GruPy-SP | G4 Solutions - Agosto 2015Abertura - GruPy-SP | G4 Solutions - Agosto 2015
Abertura - GruPy-SP | G4 Solutions - Agosto 2015Mario Guedes
 
Cacheamento Lado Servidor
Cacheamento Lado ServidorCacheamento Lado Servidor
Cacheamento Lado ServidorMario Guedes
 

Mais de Mario Guedes (20)

Integrando-se à Blockchain da Ethereum
Integrando-se à Blockchain da EthereumIntegrando-se à Blockchain da Ethereum
Integrando-se à Blockchain da Ethereum
 
Entendendo HTTP para entender o REST
Entendendo HTTP para entender o RESTEntendendo HTTP para entender o REST
Entendendo HTTP para entender o REST
 
Expressão Regular - Cookbook
Expressão Regular - CookbookExpressão Regular - Cookbook
Expressão Regular - Cookbook
 
Geolocalização com Redis e Google Maps
Geolocalização com Redis e Google MapsGeolocalização com Redis e Google Maps
Geolocalização com Redis e Google Maps
 
Foco no app, viva o serverless!
Foco no app, viva o serverless!Foco no app, viva o serverless!
Foco no app, viva o serverless!
 
Geolocalização com Redis e Google Maps
Geolocalização com Redis e Google MapsGeolocalização com Redis e Google Maps
Geolocalização com Redis e Google Maps
 
Paralelismo na prática: Threads de uma vez por todas e sem medo!
Paralelismo na prática: Threads de uma vez por todas e sem medo!Paralelismo na prática: Threads de uma vez por todas e sem medo!
Paralelismo na prática: Threads de uma vez por todas e sem medo!
 
Escalando o backend com NGINX e Redis
Escalando o backend com NGINX e RedisEscalando o backend com NGINX e Redis
Escalando o backend com NGINX e Redis
 
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...
 
Extreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiExtreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe Delphi
 
BOT: Conversando com o seu sistema
BOT: Conversando com o seu sistemaBOT: Conversando com o seu sistema
BOT: Conversando com o seu sistema
 
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
 
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuários
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuáriosExtreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuários
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuários
 
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDBArquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
 
Big data da teoria à prática
Big data  da teoria à práticaBig data  da teoria à prática
Big data da teoria à prática
 
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
 
Delphi Parallel Programming Library
Delphi Parallel Programming LibraryDelphi Parallel Programming Library
Delphi Parallel Programming Library
 
Nova Infraestrutura JSON: System.JSON na prática
Nova Infraestrutura JSON: System.JSON na prática Nova Infraestrutura JSON: System.JSON na prática
Nova Infraestrutura JSON: System.JSON na prática
 
Abertura - GruPy-SP | G4 Solutions - Agosto 2015
Abertura - GruPy-SP | G4 Solutions - Agosto 2015Abertura - GruPy-SP | G4 Solutions - Agosto 2015
Abertura - GruPy-SP | G4 Solutions - Agosto 2015
 
Cacheamento Lado Servidor
Cacheamento Lado ServidorCacheamento Lado Servidor
Cacheamento Lado Servidor
 

Escalabilidade com Redis: Turbinando o Sistema

  • 2. Mario? • Arquiteto de Soluções Digitais • Embarcadero MVP desde 2016 • 20+ anos desenvolvendo software • Delphi, Python, Lua, JavaScript, C++ • PostgreSQL, MongoDB, Redis, Neo4J, Cassandra • Experiência em sistemas críticos 24x7 • Em todas as redes: /jmarioguedes • Iniciando a arrayOF Treinamento e Assessoria • Com foco em modernização de soluções legadas • mario.guedes@arrayof.com.br
  • 3. Agenda • Mario? • O que é Redis? • Possibilidades com o Redis? • Exemplo prático • Redis no Windows • Q&A
  • 5. O que é o Redis? • Banco noSQL orientado a chavevalor • Imagine um grande arquivo INI • Armazena os dados na memória RAM • “Velocidade, eu sou a velocidade” • Possui vários tipos de dados e operações, oferecendo diversas possibilidades • Suporte à expiração automática de dados: TTL • Suporte à execução de scripts em Lua • Funcionamento em cluster
  • 6. Possibilidades com o Redis • Cacheamento lado servidor: • “O processamento mais rápido é aquele que não é feito” • Cuidados com invalidação e revalidação de cache • Isso aliviará a carga no seu banco principal • Serviço de mensageria por oferecer PUB/SUB e enfileiramento de comandos FIFO • Armazenamento de sessões de usuário para compartilhar entre várias instâncias • Manutenção de dashboards em tempo real • Funcionamento off-line como em PDVs
  • 7. Por isso a promessa de Escalabilidade • “Escalabilidade indica a capacidade do sistema em manipular uma porção crescente de trabalho de forma uniforme, ou estar preparado para crescer.” • https://pt.wikipedia.org/wiki/Escalabilidade • O Redis nos provê escalabilidade por responder extremamente rápido às solicitações. • Podemos adotar, então, a escala horizontal do backend com abordagem de micro serviços.
  • 8. Chave • A chave é uma string ou array de bytes • Evite nomes longos • Use hash MD5 se for o caso • Hierarquize com “:” e um com o finalizador “#” • CODERAGE:BRASIL:2019:REDIS# • Para listar as chaves temos: • * Vários caracteres subsequentes • ? Qualquer caractere em uma determinada posição • [] Conjunto de caracteres específico em uma determinada posição
  • 9. Valor • É um array de bytes podendo representar: • String • Hash • Lista • Conjuntos • Mapa de bits • Entre outros
  • 10. Redis no Windows • Não há suporte oficial ao Windows • Há uma portabilização antiga suficientemente boa em: http://bit.ly/redis_windows • Mas considere executar o Redis mais atual em uma VM ou Docker.
  • 11. Redis no Delphi • O protocolo de comunicação com o Redis é extremamente simples e baseado em texto: https://redis.io/topics/protocol • Recomendo a biblioteca desenvolvida pelo Daniele Teti: http://www.danieleteti.it/redis-client/
  • 12. RECAP • O Redis é estratégico • Cuidados ao executar no S.O. Windows • Para mensageria é suficientemente bom porém cogite o RabbitMQ • O Redis não substituirá o seu banco de dados • O Redis não é só o que foi mostrado aqui