3. Introdução
● Banco de dados NoSQL open source escrito em C.
● REDIS - REmote DIctionary Service.
● Atualmente mantido pela Redis Lab.
4. História
Redis: REmote DIctionary Server
Salvatore Sanfilippo, o desenvolvedor
oficial foi contratado pela VMware em
2010. Em 2013 o projeto recebeu
patrocínio da Pivotal Software. Em
2015 o projeto recebeu patrocínio pela
Redis Labs
5. Histórico
● 2009 - Projeto Redis iniciado pelo desenvolvedor italiano Salvatore Sanfilippo
com o objetivo de melhorar a performance do serviço oferecido pela sua startup,
um serviço de web analytics real-time.
● 2009 - No mesmo ano, Salvatore Sanfilippo lança uma versão estável do seu
projeto e passa a utilizá-lo na sua startup, substituindo o MySQL.
● 2010 - Salvatore é contratado pela VMWare para se dedicar exclusivamente ao
desenvolvimento do Redis.
● 2013 - O projeto passa a ser mantido pela Pivotal Software.
● 2015 - Redis Lab fica responsável pelo projeto.
6. Características
● Chave-valor
● Armazenamento in-memory - performance (armazenamento primário)
● Opções de persistência em disco
● Suporte a uma grande variedade de estrutura de dados e tipos primitivos.
(strings, listas, conjuntos, conjuntos ordenados, hashmaps, dados geoespaciais,
hyperloglogs e bitmaps)
● Suporte a transações (operações atômicas)
7. Aplicações
● Utilizado como banco de dados,
cache e message broker.
● Redis é uma opção popular para
aplicativos de jogos, tecnologia de
anúncios, serviços financeiros,
healthcare e IoT que exigem os
mais altos níveis de performance,
escalabilidade e disponibilidade do
mercado.
Cache de sessão:
❏ Segurança
❏ Persistência
❏ Consistência
Cache de página inteira (FPC):
❏ Velocidade
Queue:
❏ Sistema de fila otimizado
8. Quem usa Redis
StackOverflow
● Usa Redis como banco de dados persistente
e cache em memória
● Usa cache para praticamente tudo.
● Redis é utilizado como uma espécie de
"camada de cache"
● Todas as página acessadas por usuários
anônimos são mantidas em cache
● Cache de sessão e contagem de
visualizações pendentes.
GitHub
● Utiliza Redis como banco de dados
persistente para armazenar informações de
rotas e vários outros dados.
9. Comparação
Redis MongoDB MySQL
Query Language Apenas comandos com
sintaxe e semântica
simples (GET e SET)
Comandos com sintaxe e semântica
complexas, permitindo realizar consultas
mais elaboradas (aggregations and map-
reduce).
SQL
Data types Suporte a tipo primitivos
e estruturados
Tipos primitivos e alguns tipos específicos
(expressão regular, javascript)
Somente tipos primitivos
Performance Possui a melhor
performance (in-memory
database)
É rápido, contudo mais lento que o Redis O mais lento de todos (verificações)
Access Control Extremamente simples,
baseado apenas em
password
RBAC (Role Based Access Control) Implementa um sofisticado sistema de
controle de acesso e privilégio que
permite criar regras de acesso
abrangentes para lidar com as
operações do cliente e impedir de forma
efetiva que clientes não autorizados
acessem o sistema de banco de dados.
11. Ecossistema - GUI
Redsmin
Redis Browser
Por conta da característica opensource,
Redis tem vários gerenciadores através de
interfaces. Porém a linha de comando
redis-cli também é bastante intuitiva