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
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”
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
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