Mobile Days
2020
Realização Apoiado por:
Barba, cabelo e bigode com
REDIS
Mario Guedes
mario@arrayof.io
Em todas as redes sociais:
👉🏻 @jmarioguedes
Mario Guedes
😎 Consultor e instrutor pela ArrayOf.io
❤ Artesão de Software desde 1999
💻 Focado no backend das soluções
Está pensando em
desenvolver um app?
• Inovador?
• Intuitivo?
• Usabilidade nota 10?
• Lindo?
• Fora da caixinha?
• Enfim, disruptivo?
Mas e o seu backend?
• Uma coisa é ter 20, 30 usuários
acessando o seu banco.
• E 100, 200, 300 ... 1.000?
• Mas 1.000 é pouco ainda, queremos
dominar o mundo!
Qual é o desenho da sua
arquitetura?
☹ Cliente e servidor?
😁 Multicamadas?
🏻 Um banco de dados relacional?
😮 Vários bancos noSQL?
😎 RESTful? Microsserviços? Serverless?
REDIS (™) *
• O REDIS cabe em qualquer arquitetura
• Ser rápido é apenas a maior qualidade dele
• Ele resolve vários problemas relacionados à escalabilidade
• Cacheamento lado servidor
• Controle de sessão de usuário
• Mensageria entre processos (microsserviço)
• Dashboard em tempo real
• Ranking
• Rate limit
• Geoprocessamento
Barba, cabelo e bigode
3️⃣ Nesta apresentação mostraremos três casos de uso
📼 Temos outros vídeos em nosso canal, confira:
https://youtube.com/arrayof
👨🏻💻 Os fontes estão em:
https://bit.ly/redis_mb2020
🧔🧔 Barba: Cacheamento lado servidor
👨🧔🧔 Cabelo: Mensageria entre serviços
👨🧔🧔 Bigode: Dashboard em tempo real
Exemplos didáticos
• Para simplificar os exemplos desenvolvi um frontend acessando
diretamente o REDIS e PostgreSQL
• Obviamente que isto não parece correto: teríamo certamente um
serviço web intermediando o frontend e o backend
Frontend
REDIS
PostgreSQL
Recursos necessários
• Biblioteca de acesso ao REDIS
https://github.com/danieleteti/delphiredisclient
• REDIS
https://redis.io/
• REDIS no Windows
Tenta usar o Docker, vale a pena
• Versão defasada (Nativo Windows)
https://bit.ly/redis_windows
Caso de Uso #1 – Cacheamento Lado Servidor
Comandos
• GET – Retorna o conteúdo de uma chave
• SET – Escreve um conteúdo em uma chave
• EXPIRE – Determina o tempo de expiração de uma chave
• DEL – Elimina uma chave
E lembre-se: “O processamento mais rápido é aquele que não é feito”
Caso de Uso #2 – Mensageria entre Processos
Comandos
• LLEN – Retorna a quantidade de elementos de uma lista
• RPUSH – Enfileira um conteúdo em uma lista, no caso, uma fila
• BLPOP – Retira, e retorna, o primeiro elemento de uma lista
Aqui o “B” é de “block” no sentido de esperar por um elemento por x
tempo caso a fila esteja vazia
Esses dois comandos “transformam” uma lista em uma fila estilo FIFO:
n 3 2 1PRODUTOR CONSUMIDOR
RPUSH BLPOP
Caso de Uso #3 – Dashboard em Tempo Real
Comandos
• KEYS – Lista as chaves de acordo com o padrão passado
• ZADD – Adiciona um membro à uma chave do tipo conjunto
• ZINCRBY – Incrementa o valor associado à um membro do conjunto
• ZREVRANK – Devolve a colocação de um membro do conjunto
• ZSCORE – Devolve a pontuação de um membro do conjunto
• ZREVRANGE – Devolve a colocação e pontos de uma faixa do
conjunto
O ranqueamento no REDIS tira proveito do tipo “conjunto ordenado” e
por isso ZRANK e ZRANGE buscam os valores do menor para o maior.
Então utilizamos os comandos reversos: ZREVRANK e ZREVRANGE
Agradecido!
• Só mostrei três formas de se usar o REDIS.
• Existem várias outras possibilidades!
• Assine nossa newsletter: https://arrayof.io
• Fontes dos exemplos:
https://github.com/ArrayOf/mobiledays_2020_redis
• Vamos trocar ideias?
mario@arrayof.io
Créditos
• As imagens utilizadas nesta apresentação foram coletadas do site: https://unsplash.com
• Todos os direitos reservados
• Photo by UX Indonesia on Unsplash
• Photo by Isabela Kronemberger on Unsplash
• Photo by Bill Oxford on Unsplash
• Photo by Adam Sherez on Unsplash
* Redis é uma marca comercial da Redis Labs Ltd. Todos os direitos são reservados à Redis Labs Ltd. Qualquer uso por ArrayOf.io serve apenas
como referência e não indica qualquer patrocínio, endosso ou afiliação entre a Redis e a ArrayOf.io

Fazendo barba, cabelo e bigode com REDIS

  • 1.
    Mobile Days 2020 Realização Apoiadopor: Barba, cabelo e bigode com REDIS Mario Guedes mario@arrayof.io
  • 2.
    Em todas asredes sociais: 👉🏻 @jmarioguedes Mario Guedes 😎 Consultor e instrutor pela ArrayOf.io ❤ Artesão de Software desde 1999 💻 Focado no backend das soluções
  • 3.
    Está pensando em desenvolverum app? • Inovador? • Intuitivo? • Usabilidade nota 10? • Lindo? • Fora da caixinha? • Enfim, disruptivo?
  • 4.
    Mas e oseu backend? • Uma coisa é ter 20, 30 usuários acessando o seu banco. • E 100, 200, 300 ... 1.000? • Mas 1.000 é pouco ainda, queremos dominar o mundo!
  • 5.
    Qual é odesenho da sua arquitetura? ☹ Cliente e servidor? 😁 Multicamadas? 🏻 Um banco de dados relacional? 😮 Vários bancos noSQL? 😎 RESTful? Microsserviços? Serverless?
  • 6.
    REDIS (™) * •O REDIS cabe em qualquer arquitetura • Ser rápido é apenas a maior qualidade dele • Ele resolve vários problemas relacionados à escalabilidade • Cacheamento lado servidor • Controle de sessão de usuário • Mensageria entre processos (microsserviço) • Dashboard em tempo real • Ranking • Rate limit • Geoprocessamento
  • 8.
    Barba, cabelo ebigode 3️⃣ Nesta apresentação mostraremos três casos de uso 📼 Temos outros vídeos em nosso canal, confira: https://youtube.com/arrayof 👨🏻💻 Os fontes estão em: https://bit.ly/redis_mb2020 🧔🧔 Barba: Cacheamento lado servidor 👨🧔🧔 Cabelo: Mensageria entre serviços 👨🧔🧔 Bigode: Dashboard em tempo real
  • 9.
    Exemplos didáticos • Parasimplificar os exemplos desenvolvi um frontend acessando diretamente o REDIS e PostgreSQL • Obviamente que isto não parece correto: teríamo certamente um serviço web intermediando o frontend e o backend Frontend REDIS PostgreSQL
  • 10.
    Recursos necessários • Bibliotecade acesso ao REDIS https://github.com/danieleteti/delphiredisclient • REDIS https://redis.io/ • REDIS no Windows Tenta usar o Docker, vale a pena • Versão defasada (Nativo Windows) https://bit.ly/redis_windows
  • 11.
    Caso de Uso#1 – Cacheamento Lado Servidor
  • 12.
    Comandos • GET –Retorna o conteúdo de uma chave • SET – Escreve um conteúdo em uma chave • EXPIRE – Determina o tempo de expiração de uma chave • DEL – Elimina uma chave E lembre-se: “O processamento mais rápido é aquele que não é feito”
  • 13.
    Caso de Uso#2 – Mensageria entre Processos
  • 14.
    Comandos • LLEN –Retorna a quantidade de elementos de uma lista • RPUSH – Enfileira um conteúdo em uma lista, no caso, uma fila • BLPOP – Retira, e retorna, o primeiro elemento de uma lista Aqui o “B” é de “block” no sentido de esperar por um elemento por x tempo caso a fila esteja vazia Esses dois comandos “transformam” uma lista em uma fila estilo FIFO: n 3 2 1PRODUTOR CONSUMIDOR RPUSH BLPOP
  • 15.
    Caso de Uso#3 – Dashboard em Tempo Real
  • 16.
    Comandos • KEYS –Lista as chaves de acordo com o padrão passado • ZADD – Adiciona um membro à uma chave do tipo conjunto • ZINCRBY – Incrementa o valor associado à um membro do conjunto • ZREVRANK – Devolve a colocação de um membro do conjunto • ZSCORE – Devolve a pontuação de um membro do conjunto • ZREVRANGE – Devolve a colocação e pontos de uma faixa do conjunto O ranqueamento no REDIS tira proveito do tipo “conjunto ordenado” e por isso ZRANK e ZRANGE buscam os valores do menor para o maior. Então utilizamos os comandos reversos: ZREVRANK e ZREVRANGE
  • 17.
    Agradecido! • Só mostreitrês formas de se usar o REDIS. • Existem várias outras possibilidades! • Assine nossa newsletter: https://arrayof.io • Fontes dos exemplos: https://github.com/ArrayOf/mobiledays_2020_redis • Vamos trocar ideias? mario@arrayof.io
  • 18.
    Créditos • As imagensutilizadas nesta apresentação foram coletadas do site: https://unsplash.com • Todos os direitos reservados • Photo by UX Indonesia on Unsplash • Photo by Isabela Kronemberger on Unsplash • Photo by Bill Oxford on Unsplash • Photo by Adam Sherez on Unsplash * Redis é uma marca comercial da Redis Labs Ltd. Todos os direitos são reservados à Redis Labs Ltd. Qualquer uso por ArrayOf.io serve apenas como referência e não indica qualquer patrocínio, endosso ou afiliação entre a Redis e a ArrayOf.io