SlideShare uma empresa Scribd logo
1 de 18
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

Mais conteúdo relacionado

Mais procurados

Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terEmerson Macedo
 
Introdução ao Node.js - FATEC SP
Introdução ao Node.js - FATEC SPIntrodução ao Node.js - FATEC SP
Introdução ao Node.js - FATEC SPArthur Fücher
 
Node.js, Uma breve introdução
Node.js, Uma breve introduçãoNode.js, Uma breve introdução
Node.js, Uma breve introduçãoPablo Feijó
 
NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.Filipe Morelli
 
Uma visão rápida sobre Nodejs
Uma visão rápida sobre NodejsUma visão rápida sobre Nodejs
Uma visão rápida sobre NodejsRafael Soares
 
Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?Pablo Souza
 
O que é nodejs, cases e vantagens
O que é nodejs, cases e vantagensO que é nodejs, cases e vantagens
O que é nodejs, cases e vantagensRodrigo Matheus
 
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasNode.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasRodrigo Branas
 
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoNode.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoEduardo Bohrer
 
BOT: Conversando com o seu sistema
BOT: Conversando com o seu sistemaBOT: Conversando com o seu sistema
BOT: Conversando com o seu sistemaMario Guedes
 
Introdução ao NodeJS
Introdução ao NodeJSIntrodução ao NodeJS
Introdução ao NodeJSGiovanni Bassi
 
Build e release pipeline com docker
Build e release pipeline com dockerBuild e release pipeline com docker
Build e release pipeline com dockerGiovanni Bassi
 
ASP.NET Core com Linux, Docker e Azure
ASP.NET Core com Linux, Docker e AzureASP.NET Core com Linux, Docker e Azure
ASP.NET Core com Linux, Docker e AzureGiovanni Bassi
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014Giovanni Bassi
 
Curso de Node.js e MongoDB - 01
Curso de Node.js e MongoDB - 01Curso de Node.js e MongoDB - 01
Curso de Node.js e MongoDB - 01Luiz Duarte
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
NodeJS Under the Hood - Concurrency and Multithreading
NodeJS Under the Hood - Concurrency and MultithreadingNodeJS Under the Hood - Concurrency and Multithreading
NodeJS Under the Hood - Concurrency and MultithreadingRhuan Karlus Silva
 
Node.js: 5 razões para começar a utilizar
Node.js: 5 razões para começar a utilizarNode.js: 5 razões para começar a utilizar
Node.js: 5 razões para começar a utilizarFilipe Falcão
 

Mais procurados (20)

Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis ter
 
Introdução ao Node.js - FATEC SP
Introdução ao Node.js - FATEC SPIntrodução ao Node.js - FATEC SP
Introdução ao Node.js - FATEC SP
 
Node.js, Uma breve introdução
Node.js, Uma breve introduçãoNode.js, Uma breve introdução
Node.js, Uma breve introdução
 
NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.
 
Uma visão rápida sobre Nodejs
Uma visão rápida sobre NodejsUma visão rápida sobre Nodejs
Uma visão rápida sobre Nodejs
 
Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?
 
O que é nodejs, cases e vantagens
O que é nodejs, cases e vantagensO que é nodejs, cases e vantagens
O que é nodejs, cases e vantagens
 
Node js - Javascript Server Side
Node js - Javascript Server SideNode js - Javascript Server Side
Node js - Javascript Server Side
 
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasNode.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo Branas
 
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoNode.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançado
 
BOT: Conversando com o seu sistema
BOT: Conversando com o seu sistemaBOT: Conversando com o seu sistema
BOT: Conversando com o seu sistema
 
Introdução ao NodeJS
Introdução ao NodeJSIntrodução ao NodeJS
Introdução ao NodeJS
 
Build e release pipeline com docker
Build e release pipeline com dockerBuild e release pipeline com docker
Build e release pipeline com docker
 
Javascript nos dias de hoje
Javascript nos dias de hojeJavascript nos dias de hoje
Javascript nos dias de hoje
 
ASP.NET Core com Linux, Docker e Azure
ASP.NET Core com Linux, Docker e AzureASP.NET Core com Linux, Docker e Azure
ASP.NET Core com Linux, Docker e Azure
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014
 
Curso de Node.js e MongoDB - 01
Curso de Node.js e MongoDB - 01Curso de Node.js e MongoDB - 01
Curso de Node.js e MongoDB - 01
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
NodeJS Under the Hood - Concurrency and Multithreading
NodeJS Under the Hood - Concurrency and MultithreadingNodeJS Under the Hood - Concurrency and Multithreading
NodeJS Under the Hood - Concurrency and Multithreading
 
Node.js: 5 razões para começar a utilizar
Node.js: 5 razões para começar a utilizarNode.js: 5 razões para começar a utilizar
Node.js: 5 razões para começar a utilizar
 

Semelhante a Apresentação sobre casos de uso do REDIS

Docker Everywhere - MTAC Week
Docker Everywhere - MTAC WeekDocker Everywhere - MTAC Week
Docker Everywhere - MTAC WeekLuiz Carlos Faria
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesChristiano Anderson
 
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
 
Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)Joao Lucas Santana
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edtedbrunoaalves
 
[MinhaVida TechDay] NoSQL
[MinhaVida TechDay] NoSQL[MinhaVida TechDay] NoSQL
[MinhaVida TechDay] NoSQLCleber Dantas
 
Redis um banco chave valor
Redis um banco chave valorRedis um banco chave valor
Redis um banco chave valorKinn Julião
 
Desenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBDesenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBAri Stopassola Junior
 
NoSQL para Desenvolvedores .NET - SQLSaturday #804 - São Paulo
NoSQL para Desenvolvedores .NET - SQLSaturday #804 - São PauloNoSQL para Desenvolvedores .NET - SQLSaturday #804 - São Paulo
NoSQL para Desenvolvedores .NET - SQLSaturday #804 - São PauloRenato Groff
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAThiago Cifani
 
Design Patterns on Rails
Design Patterns on RailsDesign Patterns on Rails
Design Patterns on Railstchandy
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadospichiliani
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadospichiliani
 
Voce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infraVoce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infraCDS
 
Escalabilidade com Redis
Escalabilidade com Redis Escalabilidade com Redis
Escalabilidade com Redis Mario Guedes
 
Docker | Minicurso Gratuito - Azure na Prática
Docker | Minicurso Gratuito - Azure na PráticaDocker | Minicurso Gratuito - Azure na Prática
Docker | Minicurso Gratuito - Azure na PráticaRenato Groff
 
NoSQL no Microsoft Azure - Global Azure Bootcamp 2017
NoSQL no Microsoft Azure - Global Azure Bootcamp 2017NoSQL no Microsoft Azure - Global Azure Bootcamp 2017
NoSQL no Microsoft Azure - Global Azure Bootcamp 2017Renato Groff
 
Mongodb praquer-usar-uaijugcloudday2014
Mongodb praquer-usar-uaijugcloudday2014Mongodb praquer-usar-uaijugcloudday2014
Mongodb praquer-usar-uaijugcloudday2014Rogerio Fontes
 
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020Renato Groff
 

Semelhante a Apresentação sobre casos de uso do REDIS (20)

Docker Everywhere - MTAC Week
Docker Everywhere - MTAC WeekDocker Everywhere - MTAC Week
Docker Everywhere - MTAC Week
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentes
 
AspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performanceAspNet 5 & Redis - Escalando sua performance
AspNet 5 & Redis - Escalando sua performance
 
Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)Desenvolvimento web com Ruby on Rails (parte 1)
Desenvolvimento web com Ruby on Rails (parte 1)
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edted
 
[MinhaVida TechDay] NoSQL
[MinhaVida TechDay] NoSQL[MinhaVida TechDay] NoSQL
[MinhaVida TechDay] NoSQL
 
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
 
Redis um banco chave valor
Redis um banco chave valorRedis um banco chave valor
Redis um banco chave valor
 
Desenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBDesenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDB
 
NoSQL para Desenvolvedores .NET - SQLSaturday #804 - São Paulo
NoSQL para Desenvolvedores .NET - SQLSaturday #804 - São PauloNoSQL para Desenvolvedores .NET - SQLSaturday #804 - São Paulo
NoSQL para Desenvolvedores .NET - SQLSaturday #804 - São Paulo
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
 
Design Patterns on Rails
Design Patterns on RailsDesign Patterns on Rails
Design Patterns on Rails
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 
Voce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infraVoce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infra
 
Escalabilidade com Redis
Escalabilidade com Redis Escalabilidade com Redis
Escalabilidade com Redis
 
Docker | Minicurso Gratuito - Azure na Prática
Docker | Minicurso Gratuito - Azure na PráticaDocker | Minicurso Gratuito - Azure na Prática
Docker | Minicurso Gratuito - Azure na Prática
 
NoSQL no Microsoft Azure - Global Azure Bootcamp 2017
NoSQL no Microsoft Azure - Global Azure Bootcamp 2017NoSQL no Microsoft Azure - Global Azure Bootcamp 2017
NoSQL no Microsoft Azure - Global Azure Bootcamp 2017
 
Mongodb praquer-usar-uaijugcloudday2014
Mongodb praquer-usar-uaijugcloudday2014Mongodb praquer-usar-uaijugcloudday2014
Mongodb praquer-usar-uaijugcloudday2014
 
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
Docker: visão geral, possibilidades e primeiros passos - UNIVAG - Junho-2020
 

Mais de Mario Guedes

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
 
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
 
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
 
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
 
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
 
Code Rage Brazil III - Tudo sobre o REST Client Library
Code Rage Brazil III - Tudo sobre o REST Client LibraryCode Rage Brazil III - Tudo sobre o REST Client Library
Code Rage Brazil III - Tudo sobre o REST Client LibraryMario Guedes
 
Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkMario Guedes
 
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-endModularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-endMario Guedes
 
O que é ser programador?
O que é ser programador?O que é ser programador?
O que é ser programador?Mario Guedes
 

Mais de Mario Guedes (20)

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
 
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
 
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
 
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...
 
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
 
Code Rage Brazil III - Tudo sobre o REST Client Library
Code Rage Brazil III - Tudo sobre o REST Client LibraryCode Rage Brazil III - Tudo sobre o REST Client Library
Code Rage Brazil III - Tudo sobre o REST Client Library
 
Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST Framework
 
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-endModularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
 
O que é ser programador?
O que é ser programador?O que é ser programador?
O que é ser programador?
 

Apresentação sobre casos de uso do REDIS

  • 1. Mobile Days 2020 Realização Apoiado por: Barba, cabelo e bigode com REDIS Mario Guedes mario@arrayof.io
  • 2. 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
  • 3. Está pensando em desenvolver um app? • Inovador? • Intuitivo? • Usabilidade nota 10? • Lindo? • Fora da caixinha? • Enfim, disruptivo?
  • 4. 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!
  • 5. Qual é o desenho 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
  • 7.
  • 8. 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
  • 9. 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
  • 10. 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
  • 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ó 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
  • 18. 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