O documento apresenta o Redis, um banco de dados chave-valor orientado a memória. Redis pode ser usado para armazenamento de sessão, cache de dados e mensageria. Ele suporta vários tipos de dados como strings, hashes, listas e conjuntos. No Delphi, a biblioteca DelphiRedisClient facilita o uso do Redis. Exemplos de uso estão disponíveis no GitHub do palestrante.
3. Globalcode – Open4education
Que Mario?
40 anos, pai do Júlio e da Fernanda
Fora da Matrix desde 1999
Artesão de Software em Delphi, Python, Lua,
JavaScript, noSQL ...
Estou CTO na Sofie Tecnologia
Vivência em soluções de grande porte para Contact
Center
Em todas as redes: @jmarioguedes
jmarioguedes@gmail.com
4. Globalcode – Open4education
O que é o REDIS?
• REDIS de REmote DIctionary Server – Servidor de Dicionário Remoto
• É um storage orientado à chave e valor
• Imagine um grande e poderoso arquivo INI
• Onde você referencia uma chave e obtém um valor – simples assim!
• Os dados ficam, essencialmente, na memória RAM podendo ou não ser persistido em disco
• Pode ser configurado para trabalhar em cluster
• https://redis.io/
5. Globalcode – Open4education
Que mais?
• Criado por Salvatore Sanfiippo
• Open-source desde 2009 e codificado em C “puro”
• Suporta estruturas de dados como:
• Strings
• Hashes
• Listas
• Conjuntos
• Conjuntos classificados com consultas de intervalo
• Bitmaps
• Hiperloglogs
• Índices geoespaciais com consultas radius
6. Globalcode – Open4education
Algo mais?
• É blocante:
• Só executa uma solicitação por vez
• Isso é ótimo
• Isso é ruim
• Tem só que saber lidar com isso
• Executa script Lua nos poupando o tráfego de dados
• Não possui suporte oficial no Windows, apesar de ser possível usar:
• https://github.com/MicrosoftArchive/redis/releases
7. Globalcode – Open4education
Problemas que podemos resolver
• Armazenamento de sessão do DataSnap, provendo escalabilidade horizontal ao backend
• Banco de dados local para operação off-line, como frente de caixa ou comunicação matriz e
filial
• É leve o suficiente para rodar em uma estação
• É poderoso o suficiente para rodar em um servidor
• Cacheamento lado servidor: o processamento mais rápido é aquele que não é feito
• Viabilização de dashboards em tempo real
• Mensageria entre os diversos artefatos de um ecossistema complexo: PUBSUB e Queue
• Interoperabilidade entre plataformas heterógenas
• Abordagem de micro serviços
8. Globalcode – Open4education
E no Delphi?
• O Danielle Tetti desenvolveu uma ótima biblioteca:
https://github.com/danieleteti/delphiredisclient
• Instale pelo GetIt Package Manager
10. Globalcode – Open4education
Principais comandos
• O Redis é bem rico em opções
• Os comandos triviais são:
• GET – Retorna o valor de uma chave
• SET – Atribui um valor à uma chave, com ou sem TTL (tempo de expiração da
chave)
• DEL – Deleta uma chave
• KEYS – Lista as chaves de acordo com um padrão, podendo ser utilizado *, ? e []
11. Globalcode – Open4education
Demonstração
OPERAÇÕES BÁSICAS
TESTE DE STRESS
CONTROLE DE SESSÃO DO DATASNAP
CACHEAMENTO LADO SERVIDOR
ENFILEIRAMENTO
PUBLICAÇÃO E ASSINATURA
EXECUÇÃO DE UM SCRIPT LUA
12. Globalcode – Open4education
Exemplos práticos
• Atenção: Se você for adotar uma estratégia de mensageria
cogite o RabbitMQ
• Os exemplos podem ser baixados do meu GitHub:
https://github.com/jmarioguedes/TDC2018_REDIS
• Para fazer telas mais bonitas do que as minhas:
DESIGN DE INTERFACES EM DELPHI
https://thuliobittencourt.eadbox.com/courses/design-de-
interfaces-em-delphi
13. Globalcode – Open4education
Leituras interessantes
• Intensive Delphi 2017 – E este tal de REDIS hein?
Mario Guedes
https://youtu.be/6kfPeO9d3bU
• Mini Curso Gratuito Redis NoSQL
Alexandre Lima
https://www.portalgsti.com.br/cursos/mini-curso-gratuito-redis/
• Livro: Armazenando dados com Redis
Rodrigo Lazoti
https://www.casadocodigo.com.br/products/livro-redis
• Livro: Introdução à linguagem Lua
José Augusto N. G. Manzano
https://novatec.com.br/livros/introducao-a-linguagem-lua/