Caso práctico: Redis

Conceptos de NoSQL

Miriam Antona

Software engineer

Redis: visión general

  • Remote Dictionary Server
  • Base de datos clave-valor popular
  • Almacén rápido en memoria de estructuras de datos
    • Conjunto de datos en memoria
    • También permite persistir en disco
  • Usos:
    • Base de datos
    • Caché
    • Intermediario de mensajes

Logotipo de Redis

  • Código abierto
  • Redis Labs: más de 400 empleados
Conceptos de NoSQL

Redis: estructuras de datos

  • Cadenas (Strings)
      SET name Ann
    
  • Listas (Lists)
      RPUSH my_numbers 1 2 3
    
  • Conjuntos (Sets)
      SADD my_set 1 2 3
    
  • Hashes
      HMSET user:123 name Ann surname Smith
    
  • ...
Conceptos de NoSQL

Redis: estructuras de datos

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

Redis: funcionalidades

  • Operaciones atómicas
  • Transacciones
  • Scripts en Lua para operaciones complejas
  • Lenguajes: Python, R, C#, Java, JavaScript, PHP...
  • Replicación asíncrona
Conceptos de NoSQL

Redis: usos populares

  • Caché (resultados de consultas, imágenes, archivos...)
  • Almacenamiento de sesiones (perfiles, credenciales...)
  • Chat, mensajería y colas (salas, comentarios en tiempo real, feeds sociales...)
  • Analítica en tiempo real (redes sociales, publicidad)
  • Clasificaciones de juegos (listas en tiempo real)
  • etc.
Conceptos de NoSQL

Redis en la nube

  • Amazon Web Services Elasticache para Redis
  • Microsoft Azure Cache para Redis en Azure
  • Alibaba ApsaraDB para Redis en Alibaba Cloud
Conceptos de NoSQL

Redis: clientes

Logotipos de algunos clientes de Redis

Conceptos de NoSQL

Caso práctico: Editoo

Logotipo de Editoo

  • Pequeña empresa
  • Herramienta online para crear revistas personalizadas
    • personales
    • empresariales

Problema:

  • Alta latencia por el aumento de uso
  • Su RDBMS no pudo asumir ese incremento

 

Solución: usar Redis

  • Almacenar sesiones de usuario
  • Cachear consultas a la base de datos
Conceptos de NoSQL

Caso práctico: Editoo

Resultados:

  • Menos tiempo de inactividad
  • Mayor rendimiento
  • Futuras migraciones desde sus bases de datos relacionales a Redis
Conceptos de NoSQL

Caso práctico: Editoo

Resultados:

  • Menos tiempo de inactividad
  • Mayor rendimiento
  • Futuras migraciones desde sus bases de datos relacionales a Redis
1 https://redis.io/customers/
Conceptos de NoSQL

¡Vamos a practicar!

Conceptos de NoSQL

Preparing Video For Download...