Apresentação na CodeRage Brasil 2019 sobre as possibilidades do Redis com o Delphi.
Vídeo para apresentação: https://youtu.be/WI7SAY_ds1s
Exemplos no GitHub: https://github.com/jmarioguedes/CodeRage2019_Redis.git
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