O documento apresenta o banco de dados Redis, descrevendo suas principais características como armazenamento orientado a chave-valor na memória RAM, alta velocidade e suporte a publicação/assinatura. Exemplos de usos incluem cache, mensageria e armazenamento de sessões. Apresenta também bibliotecas e comandos básicos como GET, SET e DEL.
4. Título da Palestra
Nome do Palestrante
Mário?
• Sou Desenvolvedor a mais de 20 anos
• Estou Gerente de Desenvolvimento na CONTACT STUDIO Software
• Manjo de Delphi, Python, JavaScript, Lua e bancos noSQL
• Extensa experiência na arquitetura REST
• Trabalho no setor de Contact Center a mile anos
5. noSQL
• Estamos entrando em 2018 e tenho certeza de que você já ouviu falar do noSQL
• Sabe que além do banco relacional temos agora outros paradigmas que resolvem problemas específicos:
• Orientação a Documento – e.g. mongoDB
• Orientação a Coluna – e.g. Cassandra
• Orientação a Chave e Valor – e.g. Redis
• Orientação a Grafo – e.g. Neo4J
• E tudo isso tem aplicabilidades bem específicas.
6. E esse tal de Redis?
• O foco, então, da nossa apresentação é o Redis
• É 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!
• Velocidade! Eu sou a velocidade!
• Os dados ficam, essencialmente na memória RAM.
• Pode ser configurado para trabalhar em Cluster.
7. Curiosidades
• https://redis.io/
• Criado por Salvatore Sanfiippo
• Open-source desde 2009
• Escrito em C “puro”
• REDIS de REmote DIctionary Server
• É blocante, ou seja, só executa um comando por vez
• Porém executa rápido pra caramba
• Executa script Lua nos poupando o tráfego de dados
• Não possui suporte oficial no Windows
8. Exemplos de problemas que podemos resolver
• Armazenamento de sessão do DataSnap, podendo adotar uma abordagem de micro serviços
• Cacheamento lado servidor: o processamento mais rápido é aquele que não é feito
• Armazenamento onde I/O é crucial, como ranqueamento de alguma coisa
• Mensageria entre os diversos artefatos de um ecossistema complexo: PUBSUB e Queue
• Armazenamento de informações com tempo de vida pré-determinado
10. E no Delphi?
• O Danielle Tetti desenvolveu uma ótima biblioteca:
https://github.com/danieleteti/delphiredisclient
• Instale pelo GetIt Package Manager
• Seja feliz!
11. 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 []
12. Exemplos práticos
• Os exemplos podem ser baixados do meu GitHub:
https://github.com/jmarioguedes/INTENSIVE_DELPHI_2017
13. Leituras interessantes
• Livro: Armazenando dados com Redis
Rodrigo Lazoti
https://www.casadocodigo.com.br/products/livro-redis
• Redis – o que é e para que serve?
https://pt.linkedin.com/pulse/redis-o-que-é-e-para-serve-romulo-cianci
• A conversation with Salvatore Sanfilippo, creator of the open-source database Redis
https://venturebeat.com/2016/06/19/redis-creator/