SlideShare uma empresa Scribd logo
Globalcode – Open4education
Trilha Rad Delphi / C++
Mario Guedes
Artesão de Software
Globalcode – Open4education
Possibilidades com o REDIS no Delphi
“Velocidade, eu sou a velocidade”
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
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/
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
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
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
Globalcode – Open4education
E no Delphi?
• O Danielle Tetti desenvolveu uma ótima biblioteca:
https://github.com/danieleteti/delphiredisclient
• Instale pelo GetIt Package Manager
Globalcode – Open4education
RESTCLIENTE MENSAGERIA SERVIÇOHTTP STORAGE
Macro esquema simplificado
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 []
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
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
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/
Globalcode – Open4education

Mais conteúdo relacionado

PDF
PPTX
Turbinando o seu sistema com Redis!
PPTX
TDC2017 | São Paulo - Trilha Rad: Delphi C++ How we figured out we had a SRE...
PPTX
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
PPTX
Escalabilidade com Redis
PPT
Tdc2014 azure redis cache
PPTX
O que é e como devo usar o REDIS? - 1o Mobile REST Summit
PPTX
Intensive Delphi 2017 - E este tal de Redis hein?
Turbinando o seu sistema com Redis!
TDC2017 | São Paulo - Trilha Rad: Delphi C++ How we figured out we had a SRE...
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
Escalabilidade com Redis
Tdc2014 azure redis cache
O que é e como devo usar o REDIS? - 1o Mobile REST Summit
Intensive Delphi 2017 - E este tal de Redis hein?

Semelhante a TDCSP - 2018 - Possibilidades com o REDIS no Delphi (12)

PDF
Redis para iniciantes - TDC 2014
PPT
Técnicas avançadas de acesso a múltiplos bancos de dados - TDC-SP 2017 - Tril...
PPTX
PPTX
Phpinterior sp redis
PPTX
Fazendo barba, cabelo e bigode com REDIS
PPTX
Fazendo barba, cabelo e bigode com REDIS
PDF
Redis um banco chave valor
PPTX
AspNet 5 & Redis - Escalando sua performance
PPTX
Redis
PPTX
Redis no mundo real
PDF
FISL12 - Redis e as facilidades de trabalhar com um banco de dados NoSQL
PPT
TDC2016SP - Trilha Embarcados
Redis para iniciantes - TDC 2014
Técnicas avançadas de acesso a múltiplos bancos de dados - TDC-SP 2017 - Tril...
Phpinterior sp redis
Fazendo barba, cabelo e bigode com REDIS
Fazendo barba, cabelo e bigode com REDIS
Redis um banco chave valor
AspNet 5 & Redis - Escalando sua performance
Redis
Redis no mundo real
FISL12 - Redis e as facilidades de trabalhar com um banco de dados NoSQL
TDC2016SP - Trilha Embarcados
Anúncio

Mais de Mario Guedes (20)

PDF
Integrando-se à Blockchain da Ethereum
PPTX
Entendendo HTTP para entender o REST
PPT
Expressão Regular - Cookbook
PDF
Geolocalização com Redis e Google Maps
PPTX
Foco no app, viva o serverless!
PPTX
Geolocalização com Redis e Google Maps
PPTX
Paralelismo na prática: Threads de uma vez por todas e sem medo!
PPTX
Escalando o backend com NGINX e Redis
PPTX
Microsserviço, Escalabilidade e Resiliência - #comofas?
PPTX
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...
PPTX
Extreme Experience 2018 | Python para quem sabe Delphi
PPTX
BOT: Conversando com o seu sistema
PPTX
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
PPTX
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuários
PPTX
Big data da teoria à prática
PPTX
Integrando sua App ao Mundo via REST/JSON
PPTX
Delphi Parallel Programming Library
PPTX
Nova Infraestrutura JSON: System.JSON na prática
PPTX
Abertura - GruPy-SP | G4 Solutions - Agosto 2015
PDF
Cacheamento Lado Servidor
Integrando-se à Blockchain da Ethereum
Entendendo HTTP para entender o REST
Expressão Regular - Cookbook
Geolocalização com Redis e Google Maps
Foco no app, viva o serverless!
Geolocalização com Redis e Google Maps
Paralelismo na prática: Threads de uma vez por todas e sem medo!
Escalando o backend com NGINX e Redis
Microsserviço, Escalabilidade e Resiliência - #comofas?
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...
Extreme Experience 2018 | Python para quem sabe Delphi
BOT: Conversando com o seu sistema
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...
Extreme 360º 2017 | Arquitetura Extrema: Rumo aos 10.000 usuários
Big data da teoria à prática
Integrando sua App ao Mundo via REST/JSON
Delphi Parallel Programming Library
Nova Infraestrutura JSON: System.JSON na prática
Abertura - GruPy-SP | G4 Solutions - Agosto 2015
Cacheamento Lado Servidor
Anúncio

Último (7)

PDF
apresentacao introducao computacao ead.pdf
PPTX
Curso de Windows 11 resumido na prática.pptx
PPTX
Mapeamento de Objeto para Tabela Relacional
DOC
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
PDF
Dos requisitos ao código: como criar código rastreável em PHP
PDF
Evolução em código: algoritmos genéticos com PHP
DOC
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
apresentacao introducao computacao ead.pdf
Curso de Windows 11 resumido na prática.pptx
Mapeamento de Objeto para Tabela Relacional
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
Dos requisitos ao código: como criar código rastreável em PHP
Evolução em código: algoritmos genéticos com PHP
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO

TDCSP - 2018 - Possibilidades com o REDIS no Delphi

  • 1. Globalcode – Open4education Trilha Rad Delphi / C++ Mario Guedes Artesão de Software
  • 2. Globalcode – Open4education Possibilidades com o REDIS no Delphi “Velocidade, eu sou a velocidade”
  • 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
  • 9. Globalcode – Open4education RESTCLIENTE MENSAGERIA SERVIÇOHTTP STORAGE Macro esquema simplificado
  • 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/

Notas do Editor

  • #4: Apresentação pessoal