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

Implementing DDD with C#
Implementing DDD with C#Implementing DDD with C#
Implementing DDD with C#
Pascal Laurin
 
Domain Driven Design (DDD)
Domain Driven Design (DDD)Domain Driven Design (DDD)
Domain Driven Design (DDD)
Tom Kocjan
 
Feature Flags.pdf
Feature Flags.pdfFeature Flags.pdf
Feature Flags.pdf
Marc Hornbeek
 
(BDT303) Running Spark and Presto on the Netflix Big Data Platform
(BDT303) Running Spark and Presto on the Netflix Big Data Platform(BDT303) Running Spark and Presto on the Netflix Big Data Platform
(BDT303) Running Spark and Presto on the Netflix Big Data Platform
Amazon Web Services
 
SQL vs NoSQL | MySQL vs MongoDB Tutorial | Edureka
SQL vs NoSQL | MySQL vs MongoDB Tutorial | EdurekaSQL vs NoSQL | MySQL vs MongoDB Tutorial | Edureka
SQL vs NoSQL | MySQL vs MongoDB Tutorial | Edureka
Edureka!
 
소프트웨어 아키텍처
소프트웨어 아키텍처소프트웨어 아키텍처
소프트웨어 아키텍처
영기 김
 
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )
SANG WON PARK
 
Domain Driven Design 101
Domain Driven Design 101Domain Driven Design 101
Domain Driven Design 101
Richard Dingwall
 
Introducing Saga Pattern in Microservices with Spring Statemachine
Introducing Saga Pattern in Microservices with Spring StatemachineIntroducing Saga Pattern in Microservices with Spring Statemachine
Introducing Saga Pattern in Microservices with Spring Statemachine
VMware Tanzu
 
A Practical Introduction to Apache Solr
A Practical Introduction to Apache SolrA Practical Introduction to Apache Solr
A Practical Introduction to Apache Solr
Angel Borroy López
 
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
VMware Tanzu
 
Arquitetura MVC
Arquitetura MVCArquitetura MVC
Arquitetura MVC
Thiago Pereira
 
Architetture a Microservizi con Docker Container
Architetture a Microservizi con Docker ContainerArchitetture a Microservizi con Docker Container
Architetture a Microservizi con Docker Container
Roberto Messora
 
DevOps: Infrastructure as Code
DevOps: Infrastructure as CodeDevOps: Infrastructure as Code
DevOps: Infrastructure as Code
Julio Aziz Flores Casab
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
Flavius Stef
 
Monitoring with Prometheus
Monitoring with PrometheusMonitoring with Prometheus
Monitoring with Prometheus
Shiao-An Yuan
 
stupid-simple-kubernetes-final.pdf
stupid-simple-kubernetes-final.pdfstupid-simple-kubernetes-final.pdf
stupid-simple-kubernetes-final.pdf
DaniloQueirozMota
 
DevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega ContínuaDevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega Contínua
Otávio Calaça Xavier
 
Databricks Delta Lake and Its Benefits
Databricks Delta Lake and Its BenefitsDatabricks Delta Lake and Its Benefits
Databricks Delta Lake and Its Benefits
Databricks
 
Getting started with postgresql
Getting started with postgresqlGetting started with postgresql
Getting started with postgresql
botsplash.com
 

Mais procurados (20)

Implementing DDD with C#
Implementing DDD with C#Implementing DDD with C#
Implementing DDD with C#
 
Domain Driven Design (DDD)
Domain Driven Design (DDD)Domain Driven Design (DDD)
Domain Driven Design (DDD)
 
Feature Flags.pdf
Feature Flags.pdfFeature Flags.pdf
Feature Flags.pdf
 
(BDT303) Running Spark and Presto on the Netflix Big Data Platform
(BDT303) Running Spark and Presto on the Netflix Big Data Platform(BDT303) Running Spark and Presto on the Netflix Big Data Platform
(BDT303) Running Spark and Presto on the Netflix Big Data Platform
 
SQL vs NoSQL | MySQL vs MongoDB Tutorial | Edureka
SQL vs NoSQL | MySQL vs MongoDB Tutorial | EdurekaSQL vs NoSQL | MySQL vs MongoDB Tutorial | Edureka
SQL vs NoSQL | MySQL vs MongoDB Tutorial | Edureka
 
소프트웨어 아키텍처
소프트웨어 아키텍처소프트웨어 아키텍처
소프트웨어 아키텍처
 
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )
 
Domain Driven Design 101
Domain Driven Design 101Domain Driven Design 101
Domain Driven Design 101
 
Introducing Saga Pattern in Microservices with Spring Statemachine
Introducing Saga Pattern in Microservices with Spring StatemachineIntroducing Saga Pattern in Microservices with Spring Statemachine
Introducing Saga Pattern in Microservices with Spring Statemachine
 
A Practical Introduction to Apache Solr
A Practical Introduction to Apache SolrA Practical Introduction to Apache Solr
A Practical Introduction to Apache Solr
 
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
 
Arquitetura MVC
Arquitetura MVCArquitetura MVC
Arquitetura MVC
 
Architetture a Microservizi con Docker Container
Architetture a Microservizi con Docker ContainerArchitetture a Microservizi con Docker Container
Architetture a Microservizi con Docker Container
 
DevOps: Infrastructure as Code
DevOps: Infrastructure as CodeDevOps: Infrastructure as Code
DevOps: Infrastructure as Code
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
 
Monitoring with Prometheus
Monitoring with PrometheusMonitoring with Prometheus
Monitoring with Prometheus
 
stupid-simple-kubernetes-final.pdf
stupid-simple-kubernetes-final.pdfstupid-simple-kubernetes-final.pdf
stupid-simple-kubernetes-final.pdf
 
DevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega ContínuaDevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega Contínua
 
Databricks Delta Lake and Its Benefits
Databricks Delta Lake and Its BenefitsDatabricks Delta Lake and Its Benefits
Databricks Delta Lake and Its Benefits
 
Getting started with postgresql
Getting started with postgresqlGetting started with postgresql
Getting started with postgresql
 

Semelhante a Redis

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-BR
Elvis Rocha
 
Palestra de PHP
Palestra de PHPPalestra de PHP
Palestra de PHP
ledsifes
 
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
Guilherme Carlos
 
Desenvolvendo uma aplicacao Full Javascript
Desenvolvendo uma aplicacao Full JavascriptDesenvolvendo uma aplicacao Full Javascript
Desenvolvendo uma aplicacao Full Javascript
Denis Vieira
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edted
brunoaalves
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
Luiz Guilherme Sucupira
 
NoSql e NewSql
NoSql e NewSqlNoSql e NewSql
NoSql e NewSql
Suzana Viana Mota
 
Apresentação - MongoDB
Apresentação - MongoDBApresentação - MongoDB
Apresentação - MongoDB
JDSBD
 
SQL Server 2012
SQL Server 2012SQL Server 2012
SQL Server 2012
Hcode
 
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
Mario 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 Source
Ambiente Livre
 
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
Wendreo L. Fernandes
 
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 Platform
André Paulovich
 
Windowsserver2008r2 140928162051-phpapp02
Windowsserver2008r2 140928162051-phpapp02Windowsserver2008r2 140928162051-phpapp02
Windowsserver2008r2 140928162051-phpapp02
Juliana Borges
 
Arquiteturas de referência MySQL
Arquiteturas de referência MySQLArquiteturas de referência MySQL
Arquiteturas de referência MySQL
MySQL Brasil
 
Trabalho de sgbd
Trabalho de sgbdTrabalho de sgbd
Trabalho de sgbd
Junior Cesar
 
Ruby on Rails
Ruby on RailsRuby on Rails
Ruby on Rails
Renato Sousa
 
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 (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

  • 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