REDIS é um poderoso "storage in-memory" que pode ser utilizado em diversas situações. O benefício mais evidente é o de liberar o banco de dados principal.
Nesta apresentação vemos três casos de uso:
- Cacheamento Lado Servidor
- Mensageria entre processos
- Dashboard em tempo real
O vídeo da apresentação está em: https://youtu.be/iyAoKLw1HbY
Quer aprender tudo sobre REDIS? Acesse nosso site: https://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
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”
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
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