SlideShare una empresa de Scribd logo
#GlobalAzure
Las crónicas de redis
Fernando Escolar
Las cronicas de redis
Las cronicas de redis
■ ¿qué es redis?
■ ¿para qué sirve?
■ instalando redis
■ clusters
■ master/slave
■ redis-sentinel
■ cluster
■ resumen
Agenda
• Redis es un sistema de almacenamiento y cache avanzado
• usa datos de tipo clave-valor
• open source y con licencia BSD.
• Usualmente se le denomina servidor de estructura de datos ya que
una clave puede contener: strings, hashes, lists, sets, sorted sets,
bitmaps y hyperloglogs.
redis
• Trabaja en memoria
• pero persiste en forma de dumps y logs de comandos
• Tiene configuraciones simples para actuar como cluster y
master/slave
• Soporta transacciones
• Implementa Publicación/Suscripción
• Procesos en forma de scripts en Lua
• …
redis
• Datos de Interes
• redis = REmote DIctionary Server
• La primera release fue en 2009
• La versión más reciente: 3.0.0 (3.2 inestable)
• Escrito en C ANSI
• Tiene librerías para más de 30 lenguajes de programación
• Una buena documentación
redis
• Números
• un cluster puede componerse de hasta ~1000 nodos
• 16384 slots de almacenamiento de claves (divididos en los master del cluster)
• 1 millón de pequeñas “key -> string” usan ~ 100 MB de memoria
• un solo hilo de ejecución – pero la CPU no será un cuello de botella
• un sistema normal linux puede enviar 500k requests/segundo
• el límite de almacenamiento es el mismo que el de memoria disponible
• max. 232 keys
redis
redis memcached
Sistema distribuido X X
Trabaja en memoria X X
Persiste eventualmente X
Caché LRU X X
Almacén de datos X
Features: Pub/Sub, Lua Scripting, … X
Diferentes estructuras de datos X
Multi-hilo X
Alta velocidad X X
Operaciones con datos X
redis vs. memcached
• Casos donde aplica redis:
• Listados de últimos xxx: LPUSH y LTRIM
• Tablas de top o de rankings: ZADD, ZREVRANGE y ZREVRANGEBYSCORE
• Cálculos de tipo “karma”: ZADD, ZRANK, ZINCRBY
• Contadores usuarios activos: INCR y EXPIRE
• Publicación y suscripción: mediator
• QUEUE’s (colas): BLPOP y LPUSH
• Textos auto-completables: ZADD, ZRANK y ZRANGE
• Almacenar información que caduca: EXPIRE
redis
Las cronicas de redis
Las cronicas de redis
- Platform as a Service
- Azure Cache Redis
- Software as a Service
- Redis Cloud by Redis Labs, Inc.
- http://azure.microsoft.com/en-us/marketplace/partners/garantiadata/redis/
- Infrastructure as a Service
- Virtual Machines
Diferentes opciones
Las cronicas de redis
https://github.com/MSOpenTech/Redis
Nuget
PM> Install-Package Redis-64
Chocolatey
c:> choco install redis-64
Instalar en máquina virtual Windows
v. 2.8.19
root@vm:/# apt-get install redis-server
root@vm:/# wget http://download.redis.io/redis-
stable.tar.gz
root@vm:/# tar xvzf redis-stable.tar.gz
root@vm:/# cd redis-stable
root@vm:/# make
Instalar en máquina virtual Linux
v. 3.0.0
Las cronicas de redis
Las cronicas de redis
Master
Slave 1 Slave 2
Master/Slave
Master/Slave
• La replicación es asíncrona
• Un maestro puede tener ‘n’ esclavos
• Los esclavos pueden ser maestro de otros esclavos
• La replicación no bloquea ni al maestro ni a los esclavos
• Un esclavo puede ser de solo lectura
• Se puede eliminar la persistencia del maestro y que la realice un
esclavo
Master/Slave: configuración
slaveof <master-ip> <master-port>
masterauth <master-password>
slave-read-only [yes|no]
Master/Slave: comandos
> SLAVEOF [ip] [port]
Si no se especifica nada y ya es un esclavo, lo promociona a maestro.
Si se especifica la ip y el puerto, lo convierte en esclavo en caliente
Master
Slave 1 Slave2
Sentinel
redis-sentinel
redis-sentinel:
• Monitorización: comprueba que maestros y esclavos funcionen como
se espera
• Notificación: notifica de errores mediante una api
• Failover automático: si detecta un error puede promocionar un
esclavo para sustituir un maestro
• Proveedor de configuración: los clientes preguntarán a redis-sentinel
cual es el servidor responsable antes de conectar.
redis-sentinel: configuración
sentinel monitor <name> <ip> <port> <quorum>
sentinel down-after-milliseconds <name> 60000
sentinel failover-timeout <name> 180000
sentinel parallel-syncs <name> 1
*quorum: número de sentinels que tienen que detectar un estado de
error para marcar un maestro como ODOWN
Cluster
• A partir de la v. 3.0
• Añade:
• La capacidad de fragmentar la información en varios nodos de forma
automática
• La capacidad de continuar con las operaciones cuando una serie de sub
nodos experimentan errores
Master 1 Master 2 Master 3
Cluster
Hash slots 0-5500 Hash slots 5501-11000 Hash slots 11001-16384
Cluster
• Existen 16384 hash slots
• Para saber el slot: slot_id = CRC16(key) mod 16384
• Si se escribe algo entre llaves dentro de la clave, solo se calcula el slot con esa
parte:
• {users:followers}123 122 124 125
• {users:followers}124 122 123 125
• Acepta una configuración master/slave dentro del cluster
• Si un maestro falla promociona a su esclavo más hábil como maestro
• Cluster Bus: cada nodo se conecta con los demás nodos a través del
bus.
appendonly yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
Cluster: configuración
> CLUSTER MEET ip port
> CLUSTER NODES
> CLUSTER REPLICATE node-id
> CLUSTER ADDSLOTS slot [slot] ...
> CLUSTER SAVECONFIG
> CLUSTER RESET [HARD|SOFT]
Cluster: comandos
Master A
Slave A1 Slave A2
Sentinel
Master B
Slave B1 Slave B2
Sentinel
Master C
Slave C1 Slave C2
Sentinel
High Availability ≥2.8
Master A
Slave A1 Slave A2
Master B
Slave B1 Slave B2
Master C
Slave C1 Slave C2
High Availability ≥3.0
Las cronicas de redis
■ Maneja cadenas de texto (o byte arrays)
■ 5 tipos de datos: Keys, Hashes, Lists, Sets y Sorted Sets
■ Pub/Sub, Lua Scripts, colas, transacciones …
■ Mono-hilo, en memoria pero persiste en forma de snapshots
■ Recomendable instalar la última versión estable (3.0.0 actualmente)
■ Para usarlo como memoria caché: Azure redis cache (PaaS)
■ Para usarlo facilmente: Redis Cloud (SaaS)
■ Para instalaciones simples usar master/slave (IaaS)
■ Para clusters complejos usar la tecnología de cluster (IaaS)
■master/slave
■ redis-sentinel
■ cluster
Resumen
¿Preguntas?
■Sitio oficial de redis
http://redis.io/
■Sitio del fork de redis para Windows
https://github.com/MSOpenTech/Redis
■Servicio en Azure de cache redis
http://azure.microsoft.com/es-es/services/cache/
■Redis Cloud by Redis Labs
http://azure.microsoft.com/en-us/marketplace/partners/garantiadata/redis/
■Documentación de redis
https://github.com/antirez/redis-doc
Bibliografía
Las cronicas de redis
Thanks!

Más contenido relacionado

PDF
DB12c: All You Need to Know About the Resource Manager
PPTX
Failover cluster
PPT
Sql Server Performance Tuning
PDF
Redis
PPTX
Oracle Goldengate training by Vipin Mishra
PDF
Redo log
PDF
Migration to Oracle Multitenant
PPTX
DB12c: All You Need to Know About the Resource Manager
Failover cluster
Sql Server Performance Tuning
Redis
Oracle Goldengate training by Vipin Mishra
Redo log
Migration to Oracle Multitenant

La actualidad más candente (20)

PPTX
Apache web server
PDF
HBase Advanced - Lars George
PDF
Database Normalization
PDF
High Availability PostgreSQL with Zalando Patroni
PPT
Oracle query optimizer
PDF
Make Your Application “Oracle RAC Ready” & Test For It
PDF
Oracle Clusterware Node Management and Voting Disks
PDF
Cours windows-2003-server
PDF
Ash architecture and advanced usage rmoug2014
PDF
AWR & ASH Analysis
PDF
Tanel Poder - Troubleshooting Complex Oracle Performance Issues - Part 2
PDF
Deep dive into PostgreSQL statistics.
PDF
Fine-tuning Group Replication for Performance
PDF
MAA Best Practices for Oracle Database 19c
DOCX
Oracle 12c far sync standby instance
PDF
Oracle RAC on Extended Distance Clusters - Presentation
PDF
Oracle Drivers configuration for High Availability, is it a developer's job?
PDF
Troubleshooting Tips and Tricks for Database 19c - Sangam 2019
PPTX
Oracle sql high performance tuning
PPT
Performance Tuning And Optimization Microsoft SQL Database
Apache web server
HBase Advanced - Lars George
Database Normalization
High Availability PostgreSQL with Zalando Patroni
Oracle query optimizer
Make Your Application “Oracle RAC Ready” & Test For It
Oracle Clusterware Node Management and Voting Disks
Cours windows-2003-server
Ash architecture and advanced usage rmoug2014
AWR & ASH Analysis
Tanel Poder - Troubleshooting Complex Oracle Performance Issues - Part 2
Deep dive into PostgreSQL statistics.
Fine-tuning Group Replication for Performance
MAA Best Practices for Oracle Database 19c
Oracle 12c far sync standby instance
Oracle RAC on Extended Distance Clusters - Presentation
Oracle Drivers configuration for High Availability, is it a developer's job?
Troubleshooting Tips and Tricks for Database 19c - Sangam 2019
Oracle sql high performance tuning
Performance Tuning And Optimization Microsoft SQL Database
Publicidad

Destacado (6)

PDF
¿Qué experiencia de usuario en los social media y cómo? (2012)
PPT
Reglas de codd y normalizacion
PDF
Redis: servidor de estructuras de datos
PPTX
Reglas de Codd
PPTX
Modelo relacional
PDF
Pasos para elaborar un ensayo
¿Qué experiencia de usuario en los social media y cómo? (2012)
Reglas de codd y normalizacion
Redis: servidor de estructuras de datos
Reglas de Codd
Modelo relacional
Pasos para elaborar un ensayo
Publicidad

Similar a Las cronicas de redis (20)

PPTX
Monta una Infraestructura Big Data para tu Empresa - Sesión II
PDF
Taller Redis
DOC
Replicacion con postgresql y slony
DOC
Replicacion con postgresql y slony
PDF
Clusters Beowulf
PDF
Cluster MySQL en Windows
PDF
Meetup: Spark + Kerberos
PDF
Meetup spark + kerberos
PDF
Introduction to Oracle Clusterware 12c
PDF
Intro cassandra
DOCX
trabajo numero 3
PDF
UYOUG 2012 - Oracle RAC 11gR2 - New features
PDF
OpenSolaris para la comunidad educativa
PPTX
Certification Day
PPTX
My sql clase_1
PDF
UYOUG OTN Tour 2011 - RAC sin sorpresas
PPTX
Redis: no solo una caché
PPTX
Administracion de servidores en infraestructura.pptx
PDF
Alta disponibilidad con Pacemaker
Monta una Infraestructura Big Data para tu Empresa - Sesión II
Taller Redis
Replicacion con postgresql y slony
Replicacion con postgresql y slony
Clusters Beowulf
Cluster MySQL en Windows
Meetup: Spark + Kerberos
Meetup spark + kerberos
Introduction to Oracle Clusterware 12c
Intro cassandra
trabajo numero 3
UYOUG 2012 - Oracle RAC 11gR2 - New features
OpenSolaris para la comunidad educativa
Certification Day
My sql clase_1
UYOUG OTN Tour 2011 - RAC sin sorpresas
Redis: no solo una caché
Administracion de servidores en infraestructura.pptx
Alta disponibilidad con Pacemaker

Más de Fernando Escolar Martínez-Berganza (20)

PDF
Por qué todo lo que subo a azure esta mal
PPTX
Deconstrucción de SOLID
PPSX
Gapand - por qué odio git?
PPSX
Betabeers - continuous deployment
PPTX
Devops RoadShow: load testing and autoscale
PPTX
Roslyn: Hello from the other compiler - dotNet Spain Conference 2016
PPTX
Reconnect 2015 - ALM VSTS
PPTX
Codemotion 2015 - Unit Testing
PPTX
Unit testing en Windows 10
PPSX
DotNet Conference: code smells
PPTX
Foro de Arquitectos: caché en azure a fondo
PPTX
Codemotion: descubriendo las cachés
PPSX
Unit tesing y el mito de los 0 bugs
PPSX
We Love Js 6 - Knockout js (with Marc Rubiño)
PPTX
Mobile services by @quiqu3
PPTX
Javascript no es vietnam
PPTX
Coding kihon + Zombie Code Survival Guide
PPTX
PPTX
Por qué todo lo que subo a azure esta mal
Deconstrucción de SOLID
Gapand - por qué odio git?
Betabeers - continuous deployment
Devops RoadShow: load testing and autoscale
Roslyn: Hello from the other compiler - dotNet Spain Conference 2016
Reconnect 2015 - ALM VSTS
Codemotion 2015 - Unit Testing
Unit testing en Windows 10
DotNet Conference: code smells
Foro de Arquitectos: caché en azure a fondo
Codemotion: descubriendo las cachés
Unit tesing y el mito de los 0 bugs
We Love Js 6 - Knockout js (with Marc Rubiño)
Mobile services by @quiqu3
Javascript no es vietnam
Coding kihon + Zombie Code Survival Guide

Último (20)

DOCX
TRABAJO GRUPAL (5) (1).docxsjjsjsksksksksk
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PDF
Documental Beyond the Code (Dossier Presentación - 2.0)
PPT
Protocolos de seguridad y mecanismos encriptación
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PPTX
Diapositivas Borrador Rocha Jauregui David Paolo (3).pptx
PDF
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
PPTX
CLAASIFICACIÓN DE LOS ROBOTS POR UTILIDAD
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PDF
MANUAL de recursos humanos para ODOO.pdf
PPTX
El uso de las TIC en la vida cotidiana..
DOCX
Trabajo grupal.docxjsjsjsksjsjsskksjsjsjsj
PPTX
Mecanismos-de-Propagacion de ondas electromagneticas
PPTX
ccna: redes de nat ipv4 stharlling cande
PPTX
Propuesta BKP servidores con Acronis1.pptx
PPTX
la-historia-de-la-medicina Edna Silva.pptx
PDF
TRABAJO DE TECNOLOGIA.pdf...........................
PDF
Diapositiva proyecto de vida, materia catedra
DOCX
Guía 5. Test de orientación Vocacional 2.docx
PDF
capacitación de aire acondicionado Bgh r 410
TRABAJO GRUPAL (5) (1).docxsjjsjsksksksksk
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
Documental Beyond the Code (Dossier Presentación - 2.0)
Protocolos de seguridad y mecanismos encriptación
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
Diapositivas Borrador Rocha Jauregui David Paolo (3).pptx
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
CLAASIFICACIÓN DE LOS ROBOTS POR UTILIDAD
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
MANUAL de recursos humanos para ODOO.pdf
El uso de las TIC en la vida cotidiana..
Trabajo grupal.docxjsjsjsksjsjsskksjsjsjsj
Mecanismos-de-Propagacion de ondas electromagneticas
ccna: redes de nat ipv4 stharlling cande
Propuesta BKP servidores con Acronis1.pptx
la-historia-de-la-medicina Edna Silva.pptx
TRABAJO DE TECNOLOGIA.pdf...........................
Diapositiva proyecto de vida, materia catedra
Guía 5. Test de orientación Vocacional 2.docx
capacitación de aire acondicionado Bgh r 410

Las cronicas de redis

  • 1. #GlobalAzure Las crónicas de redis Fernando Escolar
  • 4. ■ ¿qué es redis? ■ ¿para qué sirve? ■ instalando redis ■ clusters ■ master/slave ■ redis-sentinel ■ cluster ■ resumen Agenda
  • 5. • Redis es un sistema de almacenamiento y cache avanzado • usa datos de tipo clave-valor • open source y con licencia BSD. • Usualmente se le denomina servidor de estructura de datos ya que una clave puede contener: strings, hashes, lists, sets, sorted sets, bitmaps y hyperloglogs. redis
  • 6. • Trabaja en memoria • pero persiste en forma de dumps y logs de comandos • Tiene configuraciones simples para actuar como cluster y master/slave • Soporta transacciones • Implementa Publicación/Suscripción • Procesos en forma de scripts en Lua • … redis
  • 7. • Datos de Interes • redis = REmote DIctionary Server • La primera release fue en 2009 • La versión más reciente: 3.0.0 (3.2 inestable) • Escrito en C ANSI • Tiene librerías para más de 30 lenguajes de programación • Una buena documentación redis
  • 8. • Números • un cluster puede componerse de hasta ~1000 nodos • 16384 slots de almacenamiento de claves (divididos en los master del cluster) • 1 millón de pequeñas “key -> string” usan ~ 100 MB de memoria • un solo hilo de ejecución – pero la CPU no será un cuello de botella • un sistema normal linux puede enviar 500k requests/segundo • el límite de almacenamiento es el mismo que el de memoria disponible • max. 232 keys redis
  • 9. redis memcached Sistema distribuido X X Trabaja en memoria X X Persiste eventualmente X Caché LRU X X Almacén de datos X Features: Pub/Sub, Lua Scripting, … X Diferentes estructuras de datos X Multi-hilo X Alta velocidad X X Operaciones con datos X redis vs. memcached
  • 10. • Casos donde aplica redis: • Listados de últimos xxx: LPUSH y LTRIM • Tablas de top o de rankings: ZADD, ZREVRANGE y ZREVRANGEBYSCORE • Cálculos de tipo “karma”: ZADD, ZRANK, ZINCRBY • Contadores usuarios activos: INCR y EXPIRE • Publicación y suscripción: mediator • QUEUE’s (colas): BLPOP y LPUSH • Textos auto-completables: ZADD, ZRANK y ZRANGE • Almacenar información que caduca: EXPIRE redis
  • 13. - Platform as a Service - Azure Cache Redis - Software as a Service - Redis Cloud by Redis Labs, Inc. - http://azure.microsoft.com/en-us/marketplace/partners/garantiadata/redis/ - Infrastructure as a Service - Virtual Machines Diferentes opciones
  • 15. https://github.com/MSOpenTech/Redis Nuget PM> Install-Package Redis-64 Chocolatey c:> choco install redis-64 Instalar en máquina virtual Windows v. 2.8.19
  • 16. root@vm:/# apt-get install redis-server root@vm:/# wget http://download.redis.io/redis- stable.tar.gz root@vm:/# tar xvzf redis-stable.tar.gz root@vm:/# cd redis-stable root@vm:/# make Instalar en máquina virtual Linux v. 3.0.0
  • 19. Master Slave 1 Slave 2 Master/Slave
  • 20. Master/Slave • La replicación es asíncrona • Un maestro puede tener ‘n’ esclavos • Los esclavos pueden ser maestro de otros esclavos • La replicación no bloquea ni al maestro ni a los esclavos • Un esclavo puede ser de solo lectura • Se puede eliminar la persistencia del maestro y que la realice un esclavo
  • 21. Master/Slave: configuración slaveof <master-ip> <master-port> masterauth <master-password> slave-read-only [yes|no]
  • 22. Master/Slave: comandos > SLAVEOF [ip] [port] Si no se especifica nada y ya es un esclavo, lo promociona a maestro. Si se especifica la ip y el puerto, lo convierte en esclavo en caliente
  • 24. redis-sentinel: • Monitorización: comprueba que maestros y esclavos funcionen como se espera • Notificación: notifica de errores mediante una api • Failover automático: si detecta un error puede promocionar un esclavo para sustituir un maestro • Proveedor de configuración: los clientes preguntarán a redis-sentinel cual es el servidor responsable antes de conectar.
  • 25. redis-sentinel: configuración sentinel monitor <name> <ip> <port> <quorum> sentinel down-after-milliseconds <name> 60000 sentinel failover-timeout <name> 180000 sentinel parallel-syncs <name> 1 *quorum: número de sentinels que tienen que detectar un estado de error para marcar un maestro como ODOWN
  • 26. Cluster • A partir de la v. 3.0 • Añade: • La capacidad de fragmentar la información en varios nodos de forma automática • La capacidad de continuar con las operaciones cuando una serie de sub nodos experimentan errores
  • 27. Master 1 Master 2 Master 3 Cluster Hash slots 0-5500 Hash slots 5501-11000 Hash slots 11001-16384
  • 28. Cluster • Existen 16384 hash slots • Para saber el slot: slot_id = CRC16(key) mod 16384 • Si se escribe algo entre llaves dentro de la clave, solo se calcula el slot con esa parte: • {users:followers}123 122 124 125 • {users:followers}124 122 123 125 • Acepta una configuración master/slave dentro del cluster • Si un maestro falla promociona a su esclavo más hábil como maestro • Cluster Bus: cada nodo se conecta con los demás nodos a través del bus.
  • 29. appendonly yes cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 Cluster: configuración
  • 30. > CLUSTER MEET ip port > CLUSTER NODES > CLUSTER REPLICATE node-id > CLUSTER ADDSLOTS slot [slot] ... > CLUSTER SAVECONFIG > CLUSTER RESET [HARD|SOFT] Cluster: comandos
  • 31. Master A Slave A1 Slave A2 Sentinel Master B Slave B1 Slave B2 Sentinel Master C Slave C1 Slave C2 Sentinel High Availability ≥2.8
  • 32. Master A Slave A1 Slave A2 Master B Slave B1 Slave B2 Master C Slave C1 Slave C2 High Availability ≥3.0
  • 34. ■ Maneja cadenas de texto (o byte arrays) ■ 5 tipos de datos: Keys, Hashes, Lists, Sets y Sorted Sets ■ Pub/Sub, Lua Scripts, colas, transacciones … ■ Mono-hilo, en memoria pero persiste en forma de snapshots ■ Recomendable instalar la última versión estable (3.0.0 actualmente) ■ Para usarlo como memoria caché: Azure redis cache (PaaS) ■ Para usarlo facilmente: Redis Cloud (SaaS) ■ Para instalaciones simples usar master/slave (IaaS) ■ Para clusters complejos usar la tecnología de cluster (IaaS) ■master/slave ■ redis-sentinel ■ cluster Resumen
  • 36. ■Sitio oficial de redis http://redis.io/ ■Sitio del fork de redis para Windows https://github.com/MSOpenTech/Redis ■Servicio en Azure de cache redis http://azure.microsoft.com/es-es/services/cache/ ■Redis Cloud by Redis Labs http://azure.microsoft.com/en-us/marketplace/partners/garantiadata/redis/ ■Documentación de redis https://github.com/antirez/redis-doc Bibliografía