Redis
● Brunno Moreira
● Ítalo Epifânio
● Robson Dias
Sumário
● Introdução
● Histórico
● Características
● Aplicações
● Comparação
● Quem usa
● Ecossistema
● Exemplo
● Referências
Introdução
● Banco de dados NoSQL open source escrito em C.
● REDIS - REmote DIctionary Service.
● Atualmente mantido pela Redis Lab.
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
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.
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)
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
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.
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.
Ecossistema
● Sistemas Operacionais
○ Linux, OS X, Windows, …
● Linguagens de Programação
○ Java, C, C++, Python, Ruby, PHP, ...
● Componentes
○ Redis Server, Redis Client, Redis Sentinel, Redis Benchmark
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
Ecossistema - GUI
Redis commanderRedis desktop manager
Ecossistema - Módulos
● RediSearch (Redis Lab)
● rediSQL (Terceiros)
● Redis Graph (Comunidade)
● ...
Exemplo - CRUD
Utilidade na Sessão
INCR Confere certa atomicidade em incrementar Tempo de sessão
Estruturas - Listas
Estruturas - Sets
❏ Elementos aparecem apenas uma vez
❏ Não são ordenados
❏ Não funcionam bem com números
Estruturas - Sorted Sets
Estruras - Hashes
❏ Lida com objetos
Referências
● https://redis.io/
● https://redis.io/topics/introduction
● https://redis.io/modules
● https://aws.amazon.com/redis/?nc1=h_ls
● http://blog.mjrusso.com/2010/10/17/redis-from-the-ground-up.html
● https://en.wikipedia.org/wiki/Redis

Redis

  • 1.
    Redis ● Brunno Moreira ●Ítalo Epifânio ● Robson Dias
  • 2.
    Sumário ● Introdução ● Histórico ●Características ● Aplicações ● Comparação ● Quem usa ● Ecossistema ● Exemplo ● Referências
  • 3.
    Introdução ● Banco dedados NoSQL open source escrito em C. ● REDIS - REmote DIctionary Service. ● Atualmente mantido pela Redis Lab.
  • 4.
    História Redis: REmote DIctionaryServer 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 ● Armazenamentoin-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 comobanco 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 QueryLanguage 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.
  • 10.
    Ecossistema ● Sistemas Operacionais ○Linux, OS X, Windows, … ● Linguagens de Programação ○ Java, C, C++, Python, Ruby, PHP, ... ● Componentes ○ Redis Server, Redis Client, Redis Sentinel, Redis Benchmark
  • 11.
    Ecossistema - GUI Redsmin RedisBrowser 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
  • 12.
    Ecossistema - GUI RediscommanderRedis desktop manager
  • 13.
    Ecossistema - Módulos ●RediSearch (Redis Lab) ● rediSQL (Terceiros) ● Redis Graph (Comunidade) ● ...
  • 14.
  • 15.
    Utilidade na Sessão INCRConfere certa atomicidade em incrementar Tempo de sessão
  • 16.
  • 17.
    Estruturas - Sets ❏Elementos aparecem apenas uma vez ❏ Não são ordenados ❏ Não funcionam bem com números
  • 18.
  • 19.
    Estruras - Hashes ❏Lida com objetos
  • 20.
    Referências ● https://redis.io/ ● https://redis.io/topics/introduction ●https://redis.io/modules ● https://aws.amazon.com/redis/?nc1=h_ls ● http://blog.mjrusso.com/2010/10/17/redis-from-the-ground-up.html ● https://en.wikipedia.org/wiki/Redis