SlideShare uma empresa Scribd logo
1 de 20
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

Mais conteúdo relacionado

Mais procurados

Log management system for Microservices
Log management system for MicroservicesLog management system for Microservices
Log management system for MicroservicesVõ Duy Tuấn
 
Redis data modeling examples
Redis data modeling examplesRedis data modeling examples
Redis data modeling examplesTerry Cho
 
Elastic Stack Introduction
Elastic Stack IntroductionElastic Stack Introduction
Elastic Stack IntroductionVikram Shinde
 
Centralized Logging System Using ELK Stack
Centralized Logging System Using ELK StackCentralized Logging System Using ELK Stack
Centralized Logging System Using ELK StackRohit Sharma
 
Elastic stack Presentation
Elastic stack PresentationElastic stack Presentation
Elastic stack PresentationAmr Alaa Yassen
 
Zabbix e o Mistério das Expressões Regulares
Zabbix e o Mistério das Expressões RegularesZabbix e o Mistério das Expressões Regulares
Zabbix e o Mistério das Expressões RegularesHenrique Haag Ribacki
 
Building Flexible APIs with Spring HATEOAS
Building Flexible APIs with Spring HATEOASBuilding Flexible APIs with Spring HATEOAS
Building Flexible APIs with Spring HATEOASVMware Tanzu
 
마이크로 서비스 아키텍쳐 소개 및 구현 방법
마이크로 서비스 아키텍쳐 소개 및 구현 방법마이크로 서비스 아키텍쳐 소개 및 구현 방법
마이크로 서비스 아키텍쳐 소개 및 구현 방법Young Soo Lee
 
[2019] PAYCO 쇼핑 마이크로서비스 아키텍처(MSA) 전환기
[2019] PAYCO 쇼핑 마이크로서비스 아키텍처(MSA) 전환기[2019] PAYCO 쇼핑 마이크로서비스 아키텍처(MSA) 전환기
[2019] PAYCO 쇼핑 마이크로서비스 아키텍처(MSA) 전환기NHN FORWARD
 
Storing time series data with Apache Cassandra
Storing time series data with Apache CassandraStoring time series data with Apache Cassandra
Storing time series data with Apache CassandraPatrick McFadin
 
Deep Dive on Amazon Aurora PostgreSQL Performance Tuning (DAT428-R1) - AWS re...
Deep Dive on Amazon Aurora PostgreSQL Performance Tuning (DAT428-R1) - AWS re...Deep Dive on Amazon Aurora PostgreSQL Performance Tuning (DAT428-R1) - AWS re...
Deep Dive on Amazon Aurora PostgreSQL Performance Tuning (DAT428-R1) - AWS re...Amazon Web Services
 
Microservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and SagaMicroservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and SagaAraf Karsh Hamid
 
Redis vs Infinispan | DevNation Tech Talk
Redis vs Infinispan | DevNation Tech TalkRedis vs Infinispan | DevNation Tech Talk
Redis vs Infinispan | DevNation Tech TalkRed Hat Developers
 
JFokus: Cubes, Hexagons, Triangles, and More: Understanding Microservices
JFokus: Cubes, Hexagons, Triangles, and More: Understanding MicroservicesJFokus: Cubes, Hexagons, Triangles, and More: Understanding Microservices
JFokus: Cubes, Hexagons, Triangles, and More: Understanding MicroservicesChris Richardson
 
OrientDB introduction - NoSQL
OrientDB introduction - NoSQLOrientDB introduction - NoSQL
OrientDB introduction - NoSQLLuca Garulli
 

Mais procurados (20)

Log management system for Microservices
Log management system for MicroservicesLog management system for Microservices
Log management system for Microservices
 
Redis data modeling examples
Redis data modeling examplesRedis data modeling examples
Redis data modeling examples
 
Azure storage
Azure storageAzure storage
Azure storage
 
Elastic Stack Introduction
Elastic Stack IntroductionElastic Stack Introduction
Elastic Stack Introduction
 
Centralized Logging System Using ELK Stack
Centralized Logging System Using ELK StackCentralized Logging System Using ELK Stack
Centralized Logging System Using ELK Stack
 
Elastic stack Presentation
Elastic stack PresentationElastic stack Presentation
Elastic stack Presentation
 
Zabbix e o Mistério das Expressões Regulares
Zabbix e o Mistério das Expressões RegularesZabbix e o Mistério das Expressões Regulares
Zabbix e o Mistério das Expressões Regulares
 
ELK Stack
ELK StackELK Stack
ELK Stack
 
Building Flexible APIs with Spring HATEOAS
Building Flexible APIs with Spring HATEOASBuilding Flexible APIs with Spring HATEOAS
Building Flexible APIs with Spring HATEOAS
 
마이크로 서비스 아키텍쳐 소개 및 구현 방법
마이크로 서비스 아키텍쳐 소개 및 구현 방법마이크로 서비스 아키텍쳐 소개 및 구현 방법
마이크로 서비스 아키텍쳐 소개 및 구현 방법
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
[2019] PAYCO 쇼핑 마이크로서비스 아키텍처(MSA) 전환기
[2019] PAYCO 쇼핑 마이크로서비스 아키텍처(MSA) 전환기[2019] PAYCO 쇼핑 마이크로서비스 아키텍처(MSA) 전환기
[2019] PAYCO 쇼핑 마이크로서비스 아키텍처(MSA) 전환기
 
Amazon Aurora: Under the Hood
Amazon Aurora: Under the HoodAmazon Aurora: Under the Hood
Amazon Aurora: Under the Hood
 
Storing time series data with Apache Cassandra
Storing time series data with Apache CassandraStoring time series data with Apache Cassandra
Storing time series data with Apache Cassandra
 
Deep Dive on Amazon Aurora PostgreSQL Performance Tuning (DAT428-R1) - AWS re...
Deep Dive on Amazon Aurora PostgreSQL Performance Tuning (DAT428-R1) - AWS re...Deep Dive on Amazon Aurora PostgreSQL Performance Tuning (DAT428-R1) - AWS re...
Deep Dive on Amazon Aurora PostgreSQL Performance Tuning (DAT428-R1) - AWS re...
 
Microservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and SagaMicroservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and Saga
 
Redis vs Infinispan | DevNation Tech Talk
Redis vs Infinispan | DevNation Tech TalkRedis vs Infinispan | DevNation Tech Talk
Redis vs Infinispan | DevNation Tech Talk
 
JFokus: Cubes, Hexagons, Triangles, and More: Understanding Microservices
JFokus: Cubes, Hexagons, Triangles, and More: Understanding MicroservicesJFokus: Cubes, Hexagons, Triangles, and More: Understanding Microservices
JFokus: Cubes, Hexagons, Triangles, and More: Understanding Microservices
 
InnoDB Locking Explained with Stick Figures
InnoDB Locking Explained with Stick FiguresInnoDB Locking Explained with Stick Figures
InnoDB Locking Explained with Stick Figures
 
OrientDB introduction - NoSQL
OrientDB introduction - NoSQLOrientDB introduction - NoSQL
OrientDB introduction - NoSQL
 

Semelhante a Redis NoSQL cache e banco de dados

Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKRyan Padilha
 
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRJBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRElvis Rocha
 
Palestra de PHP
Palestra de PHPPalestra de PHP
Palestra de PHPledsifes
 
Ruby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkRuby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkGuilherme Carlos
 
Desenvolvendo uma aplicacao Full Javascript
Desenvolvendo uma aplicacao Full JavascriptDesenvolvendo uma aplicacao Full Javascript
Desenvolvendo uma aplicacao Full JavascriptDenis Vieira
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edtedbrunoaalves
 
Apresentação - MongoDB
Apresentação - MongoDBApresentação - MongoDB
Apresentação - MongoDBJDSBD
 
SQL Server 2012
SQL Server 2012SQL Server 2012
SQL Server 2012Hcode
 
O que é e como devo usar o REDIS? - 1o Mobile REST Summit
O que é e como devo usar o REDIS? - 1o Mobile REST SummitO que é e como devo usar o REDIS? - 1o Mobile REST Summit
O que é e como devo usar o REDIS? - 1o Mobile REST SummitMario Guedes
 
Alfresco ECM e Gestão Eletrônica de Documentos Open Source
Alfresco ECM e Gestão Eletrônica de Documentos Open SourceAlfresco ECM e Gestão Eletrônica de Documentos Open Source
Alfresco ECM e Gestão Eletrônica de Documentos Open SourceAmbiente Livre
 
NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.Filipe Morelli
 
Pangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformPangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformAndré Paulovich
 
Windowsserver2008r2 140928162051-phpapp02
Windowsserver2008r2 140928162051-phpapp02Windowsserver2008r2 140928162051-phpapp02
Windowsserver2008r2 140928162051-phpapp02Juliana Borges
 
Arquiteturas de referência MySQL
Arquiteturas de referência MySQLArquiteturas de referência MySQL
Arquiteturas de referência MySQLMySQL Brasil
 
Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infosimples
 

Semelhante a Redis NoSQL cache e banco de dados (20)

Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDK
 
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRJBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
 
Palestra de PHP
Palestra de PHPPalestra de PHP
Palestra de PHP
 
Ruby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkRuby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao Framework
 
Desenvolvendo uma aplicacao Full Javascript
Desenvolvendo uma aplicacao Full JavascriptDesenvolvendo uma aplicacao Full Javascript
Desenvolvendo uma aplicacao Full Javascript
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edted
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
NoSql e NewSql
NoSql e NewSqlNoSql e NewSql
NoSql e NewSql
 
Apresentação - MongoDB
Apresentação - MongoDBApresentação - MongoDB
Apresentação - MongoDB
 
SQL Server 2012
SQL Server 2012SQL Server 2012
SQL Server 2012
 
O que é e como devo usar o REDIS? - 1o Mobile REST Summit
O que é e como devo usar o REDIS? - 1o Mobile REST SummitO que é e como devo usar o REDIS? - 1o Mobile REST Summit
O que é e como devo usar o REDIS? - 1o Mobile REST Summit
 
Alfresco ECM e Gestão Eletrônica de Documentos Open Source
Alfresco ECM e Gestão Eletrônica de Documentos Open SourceAlfresco ECM e Gestão Eletrônica de Documentos Open Source
Alfresco ECM e Gestão Eletrônica de Documentos Open Source
 
Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0
 
NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.
 
Pangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformPangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud Platform
 
Windowsserver2008r2 140928162051-phpapp02
Windowsserver2008r2 140928162051-phpapp02Windowsserver2008r2 140928162051-phpapp02
Windowsserver2008r2 140928162051-phpapp02
 
Arquiteturas de referência MySQL
Arquiteturas de referência MySQLArquiteturas de referência MySQL
Arquiteturas de referência MySQL
 
Trabalho de sgbd
Trabalho de sgbdTrabalho de sgbd
Trabalho de sgbd
 
Ruby on Rails
Ruby on RailsRuby on Rails
Ruby on Rails
 
Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)
 

Redis NoSQL cache e banco de dados

  • 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 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.
  • 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 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
  • 12. Ecossistema - GUI Redis commanderRedis desktop manager
  • 13. Ecossistema - Módulos ● RediSearch (Redis Lab) ● rediSQL (Terceiros) ● Redis Graph (Comunidade) ● ...
  • 15. Utilidade na Sessão INCR Confere certa atomicidade em incrementar Tempo de sessão
  • 17. Estruturas - Sets ❏ Elementos aparecem apenas uma vez ❏ Não são ordenados ❏ Não funcionam bem com números
  • 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