Estudo de caso: Redis

Conceitos de NoSQL

Miriam Antona

Software engineer

Redis - visão geral

  • Remote Dictionary Server
  • Banco de dados key-value popular
  • Armazenamento de dados em memória rápido
    • Conjunto de dados em memória
    • Também permite persistir em disco
  • Usado como:
    • Banco de dados
    • Cache
    • Message broker

Logo do Redis

  • Código aberto
  • Redis Labs: 400+ funcionários
Conceitos de NoSQL

Redis - estruturas de dados

  • Strings
      SET name Ann
    
  • Lists
      RPUSH my_numbers 1 2 3
    
  • Sets
      SADD my_set 1 2 3
    
  • Hashes
      HMSET user:123 name Ann surname Smith
    
  • ...
Conceitos de NoSQL

Redis - estruturas de dados

  • Strings
      SET name Ann
    
  • Lists
      RPUSH my_numbers 1 2 3
    
  • Sets
      SADD my_set 1 2 3
    
  • Hashes
      HMSET user:123 name Ann surname Smith
    
  • ...
1 https://redis.io/glossary/redis-data-structures/
Conceitos de NoSQL

Redis - recursos

  • Operações atômicas
  • Transações
  • Scripts em Lua para operações complexas
  • Linguagens: Python, R, C#, Java, JavaScript, PHP...
  • Replicação assíncrona
Conceitos de NoSQL

Redis - usos populares

  • Caching (resultados de consultas, imagens, arquivos...)
  • Armazenamento de sessão (perfis de usuário, credenciais...)
  • Chat, mensagens e filas (salas de bate-papo, comentários em tempo real, feeds de redes sociais...)
  • Analytics em tempo real (análises de redes sociais, publicidade)
  • Rankings de jogos (listas ranqueadas em tempo real)
  • etc.
Conceitos de NoSQL

Redis - na nuvem

  • Amazon Web Services Elasticache for Redis
  • Microsoft Azure Cache for Redis no Azure
  • Alibaba ApsaraDB for Redis na Alibaba Cloud
Conceitos de NoSQL

Redis - clientes

Logotipos de alguns clientes Redis

Conceitos de NoSQL

Estudo de caso: Editoo

Logo da Editoo

  • Pequena empresa
  • Ferramenta online para criar revistas personalizadas
    • pessoais
    • empresariais

Problema:

  • Alta latência devido ao aumento de usuários
  • O RDBMS deles não suportou esse crescimento

 

Solução: usar Redis

  • Armazenar sessões de usuário
  • Fazer cache de consultas ao banco
Conceitos de NoSQL

Estudo de caso: Editoo

Resultados:

  • Redução de downtime
  • Maior desempenho
  • Futuras migrações de bancos relacionais para Redis
Conceitos de NoSQL

Estudo de caso: Editoo

Resultados:

  • Redução de downtime
  • Maior desempenho
  • Futuras migrações de bancos relacionais para Redis
1 https://redis.io/customers/
Conceitos de NoSQL

Vamos praticar!

Conceitos de NoSQL

Preparing Video For Download...