SlideShare a Scribd company logo
1 of 39
Download to read offline
Introducción a Redis
Introducción a Redis
Introducción a Redis
1. Qué es Redis
2. Claves y valores
3. Estructuras de datos
4. Expiración del dato
5. Publicación y suscripción
6. Persistencia
7. Redis Sentinel
8. Redis Cluster
Índice
Implantación de Continuous Delivery en el Área Digital - Configuración y despliegue
Qué es Redis
1
Introducción a Redis
Qué es Redis
● Se define como un almacén de estructuras de datos en memoria, usado como base de datos clave/valor NoSQL, caché y
broker de mensajería.
● Aunque la información se almacena en memoria dispone de mecanismos de persistencia en disco.
● En versiones anteriores hacía uso de memoria virtual, pero ahora está deprecado.
● Redis da soporte a casos de uso concretos. No es una base de datos “para todo”.
1 Qué es Redis / Qué es Redis
Introducción a Redis
1 Qué es Redis / Ventajas
Ventajas
● Base de datos con alto rendimiento.
● Diferentes estrategias de persistencia que proporcionan diferentes soluciones a diferentes problemas.
● Permite transaccionalidad de operaciones.
● Provee mecanismos de publicación y suscripción.
● Proporciona pipelines de comandos para minimizar los accesos al servidor.
Introducción a Redis
1 Qué es Redis / Incovenientes
Inconvenientes
● Al ser un almacén de datos en memoria, el consumo de RAM es elevado.
● No es recomendable almacenar grandes archivos multimedia, por ejemplo.
● Baja relacionalidad de los datos, con lo que no es óptima para cualquier solución. Por ejemplo, las consultas están limitadas
a un acceso clave / valor.
● Redis no soporta auto-compresión, pero el programador puede hacerla para rebajar el consumo de RAM penalizando el
rendimiento.
Implantación de Continuous Delivery en el Área Digital - Configuración y despliegue
Claves y valores
2
Introducción a Redis
Claves
Las claves en Redis pueden ser cualquier secuencia binaria, desde una cadena de texto hasta el contenido de un fichero. La cadena
vacía es un valor válido.
Algunas reglas sobre claves:
● Las claves no deben ser demasiado largas, no sólo por el consumo de memoria y ancho de banda sino por el coste de
comparar claves demasiado extensas para operar sobre ellas.
● Las claves deben ser descriptivas, siempre es mejor “user:10:comments” que “u10c”.
● Hay que intentar seguir un esquema en el nombrado de claves. Por ejemplo "object-type:id" es buena idea, sería "user:
1000". Puntos y “-” normalmente se usan para campos con multi-palabra, por ejemplo "comment:1234:reply.to" o
"comment:1234:reply-to".
● El tamaño máximo de una clave es 512 MB.
2 Claves y valores / Claves
Implantación de Continuous Delivery en el Área Digital - Configuración y despliegue
Estructuras de datos
3
Introducción a Redis
Strings
● Los strings son las estructuras de datos más básicos de Redis.
● Se puede almacenar información binaria en un campo de tipo String y operar con ella.
● Se puede usar para cachear fragmentos de HTML o páginas completas.
● El tamaño máximo de un valor de un campo String en Redis no puede superar los 512 MB.
En resumen, podemos usar los strings para almacenar y recuperar información como sesiones de usuario, carritos de la compra,
contadores, cache de HTML, cache de consultas a BBDD o llamadas a un API, y en general objetos serializados en XML, JSON o
cualquier otro formato.
3 Estructuras de datos / Strings
Introducción a Redis
Operaciones básicas
● Fijar un valor en una clave (admite argumentos “nx” para que falle si la clave existe o “xx” que sólo tiene éxito si existe)
set characters:iron-man '{"name": "Iron man", "real-name": "Tony Stark", "powerlevel": 85}'
● Obtener el valor de una clave
get characters:iron-man
● Incrementar un valor numérico de una clave
incr counter
incrby counter 10
● Decrementar un valor numérico de una clave
decr counter
decrby counter 2
● Fijar o devolver varios valores de claves a la vez. Mget devuelve un array. Es útil para reducir accesos a Redis.
mset a 10 b 20 c 30
mget a b c
3 Estructuras de datos / Strings
Introducción a Redis
Operaciones básicas
● Fijar un valor y devolver como resultado el que tenía antes de cambiarlo.
getset a 30
>10
● Saber el tamaño del valor asociado a una clave
strlen characters:iron-man
>65
● Devolver un substring del valor de una clave
getrange characters:iron-man 2 10
● Concatenar un string a un valor de una clave
append characters:iron-man “next string”
3 Estructuras de datos / Strings
Introducción a Redis
Operaciones básicas para tipos de datos comunes
● Conocer el tipo de un valor asociado a una clave
type characters:iron-man
>string
● Borrar una clave y su valor
del characters:iron-man
● Saber si una clave existe
exists characters:iron-man
3 Estructuras de datos / Strings
Introducción a Redis
Listas
● Las listas son simplemente una secuencia de elementos ordenados.
● Las listas en Redis están implementadas como Listas enlazadas, lo que hace que añadir nuevos elementos sea igual para
listas pequeñas o enormes.
● Como contrapartida, acceder a un elemento por índice hace que sea más costoso en rendimiento, para esto usaremos
Sorted Sets.
● Los casos de uso más claros para utilizar listas son: “Mostar los últimos 10 comentarios”, Un proceso añade tareas a una
lista mientras otro las va extrayendo y ejecutando...etc
3 Estructuras de datos / Listas
Introducción a Redis
Operaciones básicas
● Añadir elementos a la cabeza (lpush) o a la cola (rpush) de una lista
lpush avengers:members “Iron man”
● Extraer elementos de la cabeza (rpop) o de la cola (rpop) de una lista
lpop avengers:members
● Devolver un rango de elementos de una lista
lrange avengers:members 0 -1 (el elemento -1 es el último elemento de una lista)
● Recortar los elementos de una lista
ltrim avengers:members 0 2
● Notificar a un proceso cuando un elemento es insertado en la cabeza (blpop) o en la cola (brpop) de una lista o devolver
valor en caso de que la lista siga vacía dado un timeout. Muy útil en colas para evitar hacer polling contra una lista.
brpop avengers:members 5
● Devolver y eliminar el último elemento de una lista (source) y añadirlo como primero a otra (destination)
rpoplpush source destination
3 Estructuras de datos / Listas
Introducción a Redis
Hashes
● En muchos aspectos, los hashes son como los strings, pero añadiendo un nuevo nivel: el campo.
● La ventaja principal para usar hashes es que podemos extraer, actualizar y borrar partes de nuestro campo sin tener que
hacerlo con el campo completo.
3 Estructuras de datos / Hashes
Introducción a Redis
Operaciones básicas
● Fijar un elemento en un hash con sus correspondientes campos
hmset avengers:iron-man name “Iron man” powerlevel 85
● Extraer campos de un hash
hmget avengers:iron-man powerlevel
> 85
● Devolver todos los campos y sus valores de un hash
hgetall avengers:iron-man
● Devolver las claves de un hash
hkeys avengers:members
● Eliminar un campo de un hash
hdel avengers:iron-man powerlevel
● Operar sobre un campo de un hash
hincrby avengers:iron-man powerlevel 5
3 Estructuras de datos / Hashes
Introducción a Redis
Sets
● Los sets son conjuntos no ordenados de strings.
● Nunca se pueden repetir elementos en un set
3 Estructuras de datos / Sets
Introducción a Redis
Operaciones básicas
● Añadir (sadd) o eliminar (srem) elementos a un set
sadd avengers:members “Iron man” “Hulk” “Captain America”
● Ver los valores de un set
smembers avengers:members
● Saber si un elemento se encuentra en un set
sismember avengers:members “Black widow”
● Operaciones de unión (sunion o sunionstore), intersección (sinter o sinterstore) o diferencias(sdiff o sdiffstore) entre sets.
sinter avengers:members x-men:members
● Extraer un elemento aleatorio de un set (spop) o devolverlo sin eliminarlo del set (srandmember)
spop avengers:members
● Saber el número de elementos de un set
scard avengers:members
3 Estructuras de datos / Sets
Introducción a Redis
Sorted Sets
● Los sorted sets son sets con posibilidad de ser ordenados
● Cada elemento en un sorted set está asociado a un float denominado score
● Dados dos elementos A y B con scores diferentes, A > B si A.score > B.score
● Dados dos elementos A y B con scores iguales, A > B si el string A es lexicográficamente > string B.
● Los sorted sets permiten operar basándose en el scope
● Desde la versión 2.8, Redis permite obtener rangos basados en reglas lexicográficas
3 Estructuras de datos / Sorted sets
Introducción a Redis
Operaciones básicas
● Añadir (zadd) o eliminar (zrem) elementos a un sorted set con parámetros adicionales, como sólo añadirlo si el elemento ya
existe (XX) o no permitir actualizar existentes sino añadir nuevos (NX)
zadd avengers:members 1 “Iron man” 2 “Hulk” 3 “Captain America”
● Ver los valores de un sorted set dado un rango determinado ordenado ascendente (zrange) o descendentemente
(zrevrange)
zrange avengers:members 0 -1 -withscores (para obtener sus scores)
● Devolver un subconjunto de elementos basándose en scores ordenado ascendente (zrangebayscore) o descendentemente
(zrevrangebyscore)
zrangebyscore avengers:members -inf 2
● Eliminar elementos basándose en scores
zremrangebyscore avengers:members 2 3
● Obtener la posición de un elemento en un sorted set ordenado ascendente (zrank) o descendentemente (zrevrank)
zrank avengers:members “Iron man”
3 Estructuras de datos / Sorted sets
Introducción a Redis
Operaciones básicas con reglas lexicográficas
● Obtener el rango de elementos ordenados ascendente (zrangebylex) o descendentemente (zrevrangebylex) siguiendo
reglas lexicográficas
zrangebylex avengers:members [B [L
3 Estructuras de datos / Sorted sets
Introducción a Redis
HyperLogLogs
● Algoritmo para calcular el número de entradas distintas en un conjunto dado.
Operaciones
● Añadir a un HLL una estructura de datos
pfadd avengers:members “Iron man” “Hulk” “Captain America”
● Contar los distintos valores introducidos en el HLL
pfcount avengers:members
> 3
● Mezclar múltiples HLLs en uno nuevo
pfmerge destination hll1 hll2 hll3
3 Estructuras de datos / HyperLogLogs
Implantación de Continuous Delivery en el Área Digital - Configuración y despliegue
Expiración del dato
4
Introducción a Redis
Conceptos básicos
● Redis permite marcar una clave para que expire. Se puede notificar con un tiempo absoluto (segundos desde 1 de Enero de
1970) o con un tiempo para que la clave se mantenga viva (en segundos o milisegundos).
● Es una operación basada en la clave, con lo que es independiente del tipo de estructura de datos que utilicemos
● Es una herramienta muy poderosa a la hora de implementar sistemas de caché basados en Redis
4 Expiración del dato
Introducción a Redis
Operaciones básicas
● Fijar expiración en segundos (expire) o milisegundos (pexpire) de una clave ya existente, una vez pasado ese tiempo, la
clave se elimina
expire avengers:iron-man 10
● Fijar expiración de una clave en un determinado momento y eliminarla una vez llegado a ese momento
expireat avengers iron-man 1356933600
● Comprobar el Time To Live de una clave en segundos (ttl) o en milisegundos (pttl)
ttl avengers iron-man
● Eliminar la expiración de una clave
persist avengers:iron-man
● Obtener la posición de un elemento en un sorted set ordenado ascendente (zrank) o descendentemente (zrevrank)
zrank avengers:members “Iron man”
4 Expiración del dato
Implantación de Continuous Delivery en el Área Digital - Configuración y despliegue
Publicación y suscripción
5
Introducción a Redis
Conceptos básicos
● Redis proporciona soporte para la publicación y suscripción a canales.
● Permite la suscripción a varios canales
● Permite la suscripción a un patrón de canales, por ejemplo, suscribirse a todos aquellos que comiencen por un string
determinado
● Permite la desuscripción de uno o varios canales
5 Publicación y suscripción
Introducción a Redis
Operaciones básicas
● Suscribirse (subscribe) o desuscribirse (unsubscribe) a varios canales.
subscribe avengers:notifications avengers:warnings
● Suscribirse (psubscribe) o desuscribirse (punsubscribe) a canales que cumplan unas condiciones
psubscribe avengers:*
● Publicar un mensaje en un canal. Devuelve el número de suscriptores que recibieron el mensaje.
publish avengers:notifications “Avengers assemble”
>3
5 Publicación y suscripción
Implantación de Continuous Delivery en el Área Digital - Configuración y despliegue
Persistencia
6
Introducción a Redis
Conceptos básicos
● Redis permite la persistencia de su información en disco
● El mecanismo RDB va haciendo snapshots de nuestro conjunto de datos en intervalos que nosotros definimos
● El mecanimos AOF escribe cada operación recibida por el servidor, de modo que en cada inicio del servidor podemos
reconstruir el conjunto de datos original
● Estos mecanismos se pueden combinar, haciendo que, en caso de reinicio del servidor, la estrategia AOF reconstruya el
conjunto de datos original
● Redis permite deshabilitar la persistencia por completo, haciendo que el conjunto de datos exista sólo mientras el servidor
está ejecutándose
6 Persistencia
Introducción a Redis
Ventajas
● Es la estrategia adecuada en caso de querer hacer backups de nuestros datos
● Es muy bueno en caso de recuperación tras un desastre
● Maximiza el rendimiento de Redis, ya que el proceso padre sólo tiene que lanzar un hijo para que persista esta información,
de modo que nunca el proceso padre de Redis tendrá que ejecutar operaciones de E/S
● Permite una recuperación del conjunto de datos más rápida que AOF en caso de desastre
Inconvenientes
● No es buena en caso de querer minimizar la pérdida de datos en caso de desastre ya que se definen save points y la pérdida
de servicio puede ser entre alguno de ellos
● Si el conjunto de datos es muy grande, el lanzamiento del proceso hijo que ejecuta las operaciones de E/S puede ser
demasiado costoso y desembocar en pérdida de servicio a clientes de algunos milisegundos o incluso en segundos si el
conjunto de datos es enorme y el rendimiento de la CPU es bajo
6 Persistencia / RDB
Introducción a Redis
Ventajas
● Favorece la durabilidad de la información. Definiendo las políticas de sincronización con el fichero puede ser tan eficiente
como RDB
● El fichero donde se guardan las operaciones se abre en modo append, así no se penaliza la búsqueda dentro del mismo y no
hay riesgo de corrupción
● Cuando el fichero se hace demasiado grande, Redis permite la creación de nuevos ficheros y el cambio de agujas para
escribir sobre este nuevo fichero de forma silenciosa y eficiente.
● Permite que tengamos guardadas todas las operaciones que se han realizado sobre el servidor
Inconvenientes
● Los ficheros son habitualmente más grandes que sus equivalentes en RDB para el mismo conjunto de datos
● AOF puede ser más lento que RDB dependiendo de la política de sincronización que se escoja
6 Persistencia / AOF
Introducción a Redis
Qué estrategia usar
La indicación que Redis nos hace es que utilicemos ambas para mantener un nivel de seguridad en el dato similiar al que
nos ofrece, por ejemplo, PostGreSQL.
En caso de que nuestros datos no sean tan importantes como para poder permitirnos una pérdida de minutos en el
servicio, se recomienda el uso de RDB sólamente, ya que ofrece mayor rendimiento.
6 Persistencia / Qué estrategia usar
Implantación de Continuous Delivery en el Área Digital - Configuración y despliegue
Redis Sentinel
7
Introducción a Redis
Conceptos básicos
● Redis permite la persistencia de su información en disco
● El mecanismo RDB va haciendo snapshots de nuestro conjunto de datos en intervalos que nosotros definimos
● El mecanimos AOF escribe cada operación recibida por el servidor, de modo que en cada inicio del servidor podemos
reconstruir el conjunto de datos original
● Estos mecanismos se pueden combinar, haciendo que, en caso de reinicio del servidor, la estrategia AOF reconstruya el
conjunto de datos original
● Redis permite deshabilitar la persistencia por completo, haciendo que el conjunto de datos exista sólo mientras el servidor
está ejecutándose
6 Persistencia
Implantación de Continuous Delivery en el Área Digital - Configuración y despliegue
Redis Cluster
8
Introducción a Redis
Conceptos básicos
● Redis permite la persistencia de su información en disco
● El mecanismo RDB va haciendo snapshots de nuestro conjunto de datos en intervalos que nosotros definimos
● El mecanimos AOF escribe cada operación recibida por el servidor, de modo que en cada inicio del servidor podemos
reconstruir el conjunto de datos original
● Estos mecanismos se pueden combinar, haciendo que, en caso de reinicio del servidor, la estrategia AOF reconstruya el
conjunto de datos original
● Redis permite deshabilitar la persistencia por completo, haciendo que el conjunto de datos exista sólo mientras el servidor
está ejecutándose
6 Persistencia
Implantación de Continuous Delivery en el Área Digital - Configuración y despliegue
¡Muchas gracias!

More Related Content

Viewers also liked

¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?Paradigma Digital
 
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!Paradigma Digital
 
Taller Redis
Taller RedisTaller Redis
Taller Redisbetabeers
 
Redis: servidor de estructuras de datos
Redis: servidor de estructuras de datosRedis: servidor de estructuras de datos
Redis: servidor de estructuras de datosAntonio Ognio
 
Fast Data at Scale with Amazon ElastiCache for Redis
Fast Data at Scale with Amazon ElastiCache for RedisFast Data at Scale with Amazon ElastiCache for Redis
Fast Data at Scale with Amazon ElastiCache for RedisAmazon Web Services
 
Aprendiendo REDIS en 20 minutos
Aprendiendo REDIS en 20 minutosAprendiendo REDIS en 20 minutos
Aprendiendo REDIS en 20 minutosGonzalo Chacaltana
 

Viewers also liked (13)

Overview atlas (1)
Overview atlas (1)Overview atlas (1)
Overview atlas (1)
 
Transformación Digital
Transformación DigitalTransformación Digital
Transformación Digital
 
¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?
 
Python y Flink
Python y FlinkPython y Flink
Python y Flink
 
HTML5 Web Components
HTML5 Web ComponentsHTML5 Web Components
HTML5 Web Components
 
Introducción a Kubernetes
Introducción a KubernetesIntroducción a Kubernetes
Introducción a Kubernetes
 
Introducción a Django
Introducción a DjangoIntroducción a Django
Introducción a Django
 
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
 
Taller Redis
Taller RedisTaller Redis
Taller Redis
 
Cultura Digital Paradigma
Cultura Digital ParadigmaCultura Digital Paradigma
Cultura Digital Paradigma
 
Redis: servidor de estructuras de datos
Redis: servidor de estructuras de datosRedis: servidor de estructuras de datos
Redis: servidor de estructuras de datos
 
Fast Data at Scale with Amazon ElastiCache for Redis
Fast Data at Scale with Amazon ElastiCache for RedisFast Data at Scale with Amazon ElastiCache for Redis
Fast Data at Scale with Amazon ElastiCache for Redis
 
Aprendiendo REDIS en 20 minutos
Aprendiendo REDIS en 20 minutosAprendiendo REDIS en 20 minutos
Aprendiendo REDIS en 20 minutos
 

More from Paradigma Digital

Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.Paradigma Digital
 
Java 8 time to join the future
Java 8  time to join the futureJava 8  time to join the future
Java 8 time to join the futureParadigma Digital
 
Programación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFluxProgramación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFluxParadigma Digital
 
Orquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace NetflixOrquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace NetflixParadigma Digital
 
Meetup microservicios: API Management
Meetup microservicios: API ManagementMeetup microservicios: API Management
Meetup microservicios: API ManagementParadigma Digital
 
Meetup de kubernetes, conceptos básicos.
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.Paradigma Digital
 
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptxDocker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptxParadigma Digital
 
Implementando microservicios
Implementando microserviciosImplementando microservicios
Implementando microserviciosParadigma Digital
 
Equipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma DigitalEquipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma DigitalParadigma Digital
 

More from Paradigma Digital (13)

Ddd + ah + microservicios
Ddd + ah + microserviciosDdd + ah + microservicios
Ddd + ah + microservicios
 
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
 
Have you met Istio?
Have you met Istio?Have you met Istio?
Have you met Istio?
 
Linkerd a fondo
Linkerd a fondoLinkerd a fondo
Linkerd a fondo
 
Horneando apis
Horneando apisHorneando apis
Horneando apis
 
Java 8 time to join the future
Java 8  time to join the futureJava 8  time to join the future
Java 8 time to join the future
 
Programación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFluxProgramación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFlux
 
Orquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace NetflixOrquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace Netflix
 
Meetup microservicios: API Management
Meetup microservicios: API ManagementMeetup microservicios: API Management
Meetup microservicios: API Management
 
Meetup de kubernetes, conceptos básicos.
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.
 
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptxDocker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
 
Implementando microservicios
Implementando microserviciosImplementando microservicios
Implementando microservicios
 
Equipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma DigitalEquipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma Digital
 

Recently uploaded

concreto pretensado y postensado- reseña historica
concreto pretensado y postensado- reseña historicaconcreto pretensado y postensado- reseña historica
concreto pretensado y postensado- reseña historicaamira520031
 
BROCHURE EDIFICIO MULTIFAMILIAR LIMA. PERU
BROCHURE EDIFICIO MULTIFAMILIAR LIMA. PERUBROCHURE EDIFICIO MULTIFAMILIAR LIMA. PERU
BROCHURE EDIFICIO MULTIFAMILIAR LIMA. PERUSharonRojas28
 
TAREA 1 - Parada de Planta compresoras de gas
TAREA 1 - Parada de Planta compresoras de gasTAREA 1 - Parada de Planta compresoras de gas
TAREA 1 - Parada de Planta compresoras de gasroberto264045
 
Método inductivo.pdf-lizzeh cuellar cardenas
Método inductivo.pdf-lizzeh cuellar cardenasMétodo inductivo.pdf-lizzeh cuellar cardenas
Método inductivo.pdf-lizzeh cuellar cardenas182136
 
Mecánica vectorial para ingenieros estática. Beer - Johnston. 11 Ed.pdf
Mecánica vectorial para ingenieros estática. Beer - Johnston. 11 Ed.pdfMecánica vectorial para ingenieros estática. Beer - Johnston. 11 Ed.pdf
Mecánica vectorial para ingenieros estática. Beer - Johnston. 11 Ed.pdfaaaaaaaaaaaaaaaaa
 
gabriela marcano estructura iii historia del concreto
gabriela marcano  estructura iii historia del concretogabriela marcano  estructura iii historia del concreto
gabriela marcano estructura iii historia del concretoGabrielaMarcano12
 
CALCULISTA AGUA POTABLE ALCANTARILLADO RURAL CURACAVÍ
CALCULISTA AGUA POTABLE ALCANTARILLADO RURAL CURACAVÍCALCULISTA AGUA POTABLE ALCANTARILLADO RURAL CURACAVÍ
CALCULISTA AGUA POTABLE ALCANTARILLADO RURAL CURACAVÍArquitecto Chile
 
Diseño de Algoritmos Paralelos con la maestra Rina
Diseño de Algoritmos Paralelos con la maestra RinaDiseño de Algoritmos Paralelos con la maestra Rina
Diseño de Algoritmos Paralelos con la maestra RinaLuisAlfredoPascualPo
 
Principios de Circuitos Eléctricos (Thomas L. Floyd) (Z-Library).pdf
Principios de Circuitos Eléctricos (Thomas L. Floyd) (Z-Library).pdfPrincipios de Circuitos Eléctricos (Thomas L. Floyd) (Z-Library).pdf
Principios de Circuitos Eléctricos (Thomas L. Floyd) (Z-Library).pdfYADIRAXIMENARIASCOSV
 
PPT_Conferencia OBRAS PUBLICAS x ADMNISTRACION DIRECTA.pdf
PPT_Conferencia OBRAS PUBLICAS x ADMNISTRACION DIRECTA.pdfPPT_Conferencia OBRAS PUBLICAS x ADMNISTRACION DIRECTA.pdf
PPT_Conferencia OBRAS PUBLICAS x ADMNISTRACION DIRECTA.pdfANGHELO JJ. MITMA HUAMANÌ
 
IA T3 Elaboración e interpretación de planos.pptx
IA T3 Elaboración e interpretación de planos.pptxIA T3 Elaboración e interpretación de planos.pptx
IA T3 Elaboración e interpretación de planos.pptxcecymendozaitnl
 
Fundamentos - Curso Desarrollo Web (HTML, JS, PHP, JS, SQL)
Fundamentos - Curso Desarrollo Web (HTML, JS, PHP, JS, SQL)Fundamentos - Curso Desarrollo Web (HTML, JS, PHP, JS, SQL)
Fundamentos - Curso Desarrollo Web (HTML, JS, PHP, JS, SQL)EmanuelMuoz11
 
aplicacion-del-metodo-cientifico-de-roberto-hernandez-carlos-fernandez-y-pila...
aplicacion-del-metodo-cientifico-de-roberto-hernandez-carlos-fernandez-y-pila...aplicacion-del-metodo-cientifico-de-roberto-hernandez-carlos-fernandez-y-pila...
aplicacion-del-metodo-cientifico-de-roberto-hernandez-carlos-fernandez-y-pila...AmeliaJul
 
1_Tipos Básicos de Motores - funcionamientos
1_Tipos Básicos de Motores - funcionamientos1_Tipos Básicos de Motores - funcionamientos
1_Tipos Básicos de Motores - funcionamientosMaicoPinelli
 
Cuadro de las web 1.0, 2.0 y 3.0 pptx
Cuadro de las web 1.0, 2.0 y 3.0     pptxCuadro de las web 1.0, 2.0 y 3.0     pptx
Cuadro de las web 1.0, 2.0 y 3.0 pptxecarmariahurtado
 
Poder puedo, pero no lo haré - T3chfest
Poder puedo, pero no lo haré - T3chfestPoder puedo, pero no lo haré - T3chfest
Poder puedo, pero no lo haré - T3chfestSilvia España Gil
 
Modulo 4 - Monitoreo Hidrobiológico de monitoreo ambiental
Modulo 4 - Monitoreo Hidrobiológico de monitoreo ambientalModulo 4 - Monitoreo Hidrobiológico de monitoreo ambiental
Modulo 4 - Monitoreo Hidrobiológico de monitoreo ambientalAcountsStore1
 
CV_SOTO_SAUL 30-01-2024 (1) arquitecto.pdf
CV_SOTO_SAUL 30-01-2024  (1) arquitecto.pdfCV_SOTO_SAUL 30-01-2024  (1) arquitecto.pdf
CV_SOTO_SAUL 30-01-2024 (1) arquitecto.pdfsd3700445
 
Modulo 5 - Monitoreo de Ruido Ambiental de monitoreo ambiental
Modulo 5 - Monitoreo de Ruido Ambiental de monitoreo ambientalModulo 5 - Monitoreo de Ruido Ambiental de monitoreo ambiental
Modulo 5 - Monitoreo de Ruido Ambiental de monitoreo ambientalAcountsStore1
 
Presentación de Ciencia, Cultura y Progreso.pptx
Presentación de Ciencia, Cultura y Progreso.pptxPresentación de Ciencia, Cultura y Progreso.pptx
Presentación de Ciencia, Cultura y Progreso.pptxwilliam atao contreras
 

Recently uploaded (20)

concreto pretensado y postensado- reseña historica
concreto pretensado y postensado- reseña historicaconcreto pretensado y postensado- reseña historica
concreto pretensado y postensado- reseña historica
 
BROCHURE EDIFICIO MULTIFAMILIAR LIMA. PERU
BROCHURE EDIFICIO MULTIFAMILIAR LIMA. PERUBROCHURE EDIFICIO MULTIFAMILIAR LIMA. PERU
BROCHURE EDIFICIO MULTIFAMILIAR LIMA. PERU
 
TAREA 1 - Parada de Planta compresoras de gas
TAREA 1 - Parada de Planta compresoras de gasTAREA 1 - Parada de Planta compresoras de gas
TAREA 1 - Parada de Planta compresoras de gas
 
Método inductivo.pdf-lizzeh cuellar cardenas
Método inductivo.pdf-lizzeh cuellar cardenasMétodo inductivo.pdf-lizzeh cuellar cardenas
Método inductivo.pdf-lizzeh cuellar cardenas
 
Mecánica vectorial para ingenieros estática. Beer - Johnston. 11 Ed.pdf
Mecánica vectorial para ingenieros estática. Beer - Johnston. 11 Ed.pdfMecánica vectorial para ingenieros estática. Beer - Johnston. 11 Ed.pdf
Mecánica vectorial para ingenieros estática. Beer - Johnston. 11 Ed.pdf
 
gabriela marcano estructura iii historia del concreto
gabriela marcano  estructura iii historia del concretogabriela marcano  estructura iii historia del concreto
gabriela marcano estructura iii historia del concreto
 
CALCULISTA AGUA POTABLE ALCANTARILLADO RURAL CURACAVÍ
CALCULISTA AGUA POTABLE ALCANTARILLADO RURAL CURACAVÍCALCULISTA AGUA POTABLE ALCANTARILLADO RURAL CURACAVÍ
CALCULISTA AGUA POTABLE ALCANTARILLADO RURAL CURACAVÍ
 
Diseño de Algoritmos Paralelos con la maestra Rina
Diseño de Algoritmos Paralelos con la maestra RinaDiseño de Algoritmos Paralelos con la maestra Rina
Diseño de Algoritmos Paralelos con la maestra Rina
 
Principios de Circuitos Eléctricos (Thomas L. Floyd) (Z-Library).pdf
Principios de Circuitos Eléctricos (Thomas L. Floyd) (Z-Library).pdfPrincipios de Circuitos Eléctricos (Thomas L. Floyd) (Z-Library).pdf
Principios de Circuitos Eléctricos (Thomas L. Floyd) (Z-Library).pdf
 
PPT_Conferencia OBRAS PUBLICAS x ADMNISTRACION DIRECTA.pdf
PPT_Conferencia OBRAS PUBLICAS x ADMNISTRACION DIRECTA.pdfPPT_Conferencia OBRAS PUBLICAS x ADMNISTRACION DIRECTA.pdf
PPT_Conferencia OBRAS PUBLICAS x ADMNISTRACION DIRECTA.pdf
 
IA T3 Elaboración e interpretación de planos.pptx
IA T3 Elaboración e interpretación de planos.pptxIA T3 Elaboración e interpretación de planos.pptx
IA T3 Elaboración e interpretación de planos.pptx
 
Fundamentos - Curso Desarrollo Web (HTML, JS, PHP, JS, SQL)
Fundamentos - Curso Desarrollo Web (HTML, JS, PHP, JS, SQL)Fundamentos - Curso Desarrollo Web (HTML, JS, PHP, JS, SQL)
Fundamentos - Curso Desarrollo Web (HTML, JS, PHP, JS, SQL)
 
aplicacion-del-metodo-cientifico-de-roberto-hernandez-carlos-fernandez-y-pila...
aplicacion-del-metodo-cientifico-de-roberto-hernandez-carlos-fernandez-y-pila...aplicacion-del-metodo-cientifico-de-roberto-hernandez-carlos-fernandez-y-pila...
aplicacion-del-metodo-cientifico-de-roberto-hernandez-carlos-fernandez-y-pila...
 
1_Tipos Básicos de Motores - funcionamientos
1_Tipos Básicos de Motores - funcionamientos1_Tipos Básicos de Motores - funcionamientos
1_Tipos Básicos de Motores - funcionamientos
 
Cuadro de las web 1.0, 2.0 y 3.0 pptx
Cuadro de las web 1.0, 2.0 y 3.0     pptxCuadro de las web 1.0, 2.0 y 3.0     pptx
Cuadro de las web 1.0, 2.0 y 3.0 pptx
 
Poder puedo, pero no lo haré - T3chfest
Poder puedo, pero no lo haré - T3chfestPoder puedo, pero no lo haré - T3chfest
Poder puedo, pero no lo haré - T3chfest
 
Modulo 4 - Monitoreo Hidrobiológico de monitoreo ambiental
Modulo 4 - Monitoreo Hidrobiológico de monitoreo ambientalModulo 4 - Monitoreo Hidrobiológico de monitoreo ambiental
Modulo 4 - Monitoreo Hidrobiológico de monitoreo ambiental
 
CV_SOTO_SAUL 30-01-2024 (1) arquitecto.pdf
CV_SOTO_SAUL 30-01-2024  (1) arquitecto.pdfCV_SOTO_SAUL 30-01-2024  (1) arquitecto.pdf
CV_SOTO_SAUL 30-01-2024 (1) arquitecto.pdf
 
Modulo 5 - Monitoreo de Ruido Ambiental de monitoreo ambiental
Modulo 5 - Monitoreo de Ruido Ambiental de monitoreo ambientalModulo 5 - Monitoreo de Ruido Ambiental de monitoreo ambiental
Modulo 5 - Monitoreo de Ruido Ambiental de monitoreo ambiental
 
Presentación de Ciencia, Cultura y Progreso.pptx
Presentación de Ciencia, Cultura y Progreso.pptxPresentación de Ciencia, Cultura y Progreso.pptx
Presentación de Ciencia, Cultura y Progreso.pptx
 

Meetup Madrid Redis Users: Introducción a Redis

  • 2. Introducción a Redis 1. Qué es Redis 2. Claves y valores 3. Estructuras de datos 4. Expiración del dato 5. Publicación y suscripción 6. Persistencia 7. Redis Sentinel 8. Redis Cluster Índice
  • 3. Implantación de Continuous Delivery en el Área Digital - Configuración y despliegue Qué es Redis 1
  • 4. Introducción a Redis Qué es Redis ● Se define como un almacén de estructuras de datos en memoria, usado como base de datos clave/valor NoSQL, caché y broker de mensajería. ● Aunque la información se almacena en memoria dispone de mecanismos de persistencia en disco. ● En versiones anteriores hacía uso de memoria virtual, pero ahora está deprecado. ● Redis da soporte a casos de uso concretos. No es una base de datos “para todo”. 1 Qué es Redis / Qué es Redis
  • 5. Introducción a Redis 1 Qué es Redis / Ventajas Ventajas ● Base de datos con alto rendimiento. ● Diferentes estrategias de persistencia que proporcionan diferentes soluciones a diferentes problemas. ● Permite transaccionalidad de operaciones. ● Provee mecanismos de publicación y suscripción. ● Proporciona pipelines de comandos para minimizar los accesos al servidor.
  • 6. Introducción a Redis 1 Qué es Redis / Incovenientes Inconvenientes ● Al ser un almacén de datos en memoria, el consumo de RAM es elevado. ● No es recomendable almacenar grandes archivos multimedia, por ejemplo. ● Baja relacionalidad de los datos, con lo que no es óptima para cualquier solución. Por ejemplo, las consultas están limitadas a un acceso clave / valor. ● Redis no soporta auto-compresión, pero el programador puede hacerla para rebajar el consumo de RAM penalizando el rendimiento.
  • 7. Implantación de Continuous Delivery en el Área Digital - Configuración y despliegue Claves y valores 2
  • 8. Introducción a Redis Claves Las claves en Redis pueden ser cualquier secuencia binaria, desde una cadena de texto hasta el contenido de un fichero. La cadena vacía es un valor válido. Algunas reglas sobre claves: ● Las claves no deben ser demasiado largas, no sólo por el consumo de memoria y ancho de banda sino por el coste de comparar claves demasiado extensas para operar sobre ellas. ● Las claves deben ser descriptivas, siempre es mejor “user:10:comments” que “u10c”. ● Hay que intentar seguir un esquema en el nombrado de claves. Por ejemplo "object-type:id" es buena idea, sería "user: 1000". Puntos y “-” normalmente se usan para campos con multi-palabra, por ejemplo "comment:1234:reply.to" o "comment:1234:reply-to". ● El tamaño máximo de una clave es 512 MB. 2 Claves y valores / Claves
  • 9. Implantación de Continuous Delivery en el Área Digital - Configuración y despliegue Estructuras de datos 3
  • 10. Introducción a Redis Strings ● Los strings son las estructuras de datos más básicos de Redis. ● Se puede almacenar información binaria en un campo de tipo String y operar con ella. ● Se puede usar para cachear fragmentos de HTML o páginas completas. ● El tamaño máximo de un valor de un campo String en Redis no puede superar los 512 MB. En resumen, podemos usar los strings para almacenar y recuperar información como sesiones de usuario, carritos de la compra, contadores, cache de HTML, cache de consultas a BBDD o llamadas a un API, y en general objetos serializados en XML, JSON o cualquier otro formato. 3 Estructuras de datos / Strings
  • 11. Introducción a Redis Operaciones básicas ● Fijar un valor en una clave (admite argumentos “nx” para que falle si la clave existe o “xx” que sólo tiene éxito si existe) set characters:iron-man '{"name": "Iron man", "real-name": "Tony Stark", "powerlevel": 85}' ● Obtener el valor de una clave get characters:iron-man ● Incrementar un valor numérico de una clave incr counter incrby counter 10 ● Decrementar un valor numérico de una clave decr counter decrby counter 2 ● Fijar o devolver varios valores de claves a la vez. Mget devuelve un array. Es útil para reducir accesos a Redis. mset a 10 b 20 c 30 mget a b c 3 Estructuras de datos / Strings
  • 12. Introducción a Redis Operaciones básicas ● Fijar un valor y devolver como resultado el que tenía antes de cambiarlo. getset a 30 >10 ● Saber el tamaño del valor asociado a una clave strlen characters:iron-man >65 ● Devolver un substring del valor de una clave getrange characters:iron-man 2 10 ● Concatenar un string a un valor de una clave append characters:iron-man “next string” 3 Estructuras de datos / Strings
  • 13. Introducción a Redis Operaciones básicas para tipos de datos comunes ● Conocer el tipo de un valor asociado a una clave type characters:iron-man >string ● Borrar una clave y su valor del characters:iron-man ● Saber si una clave existe exists characters:iron-man 3 Estructuras de datos / Strings
  • 14. Introducción a Redis Listas ● Las listas son simplemente una secuencia de elementos ordenados. ● Las listas en Redis están implementadas como Listas enlazadas, lo que hace que añadir nuevos elementos sea igual para listas pequeñas o enormes. ● Como contrapartida, acceder a un elemento por índice hace que sea más costoso en rendimiento, para esto usaremos Sorted Sets. ● Los casos de uso más claros para utilizar listas son: “Mostar los últimos 10 comentarios”, Un proceso añade tareas a una lista mientras otro las va extrayendo y ejecutando...etc 3 Estructuras de datos / Listas
  • 15. Introducción a Redis Operaciones básicas ● Añadir elementos a la cabeza (lpush) o a la cola (rpush) de una lista lpush avengers:members “Iron man” ● Extraer elementos de la cabeza (rpop) o de la cola (rpop) de una lista lpop avengers:members ● Devolver un rango de elementos de una lista lrange avengers:members 0 -1 (el elemento -1 es el último elemento de una lista) ● Recortar los elementos de una lista ltrim avengers:members 0 2 ● Notificar a un proceso cuando un elemento es insertado en la cabeza (blpop) o en la cola (brpop) de una lista o devolver valor en caso de que la lista siga vacía dado un timeout. Muy útil en colas para evitar hacer polling contra una lista. brpop avengers:members 5 ● Devolver y eliminar el último elemento de una lista (source) y añadirlo como primero a otra (destination) rpoplpush source destination 3 Estructuras de datos / Listas
  • 16. Introducción a Redis Hashes ● En muchos aspectos, los hashes son como los strings, pero añadiendo un nuevo nivel: el campo. ● La ventaja principal para usar hashes es que podemos extraer, actualizar y borrar partes de nuestro campo sin tener que hacerlo con el campo completo. 3 Estructuras de datos / Hashes
  • 17. Introducción a Redis Operaciones básicas ● Fijar un elemento en un hash con sus correspondientes campos hmset avengers:iron-man name “Iron man” powerlevel 85 ● Extraer campos de un hash hmget avengers:iron-man powerlevel > 85 ● Devolver todos los campos y sus valores de un hash hgetall avengers:iron-man ● Devolver las claves de un hash hkeys avengers:members ● Eliminar un campo de un hash hdel avengers:iron-man powerlevel ● Operar sobre un campo de un hash hincrby avengers:iron-man powerlevel 5 3 Estructuras de datos / Hashes
  • 18. Introducción a Redis Sets ● Los sets son conjuntos no ordenados de strings. ● Nunca se pueden repetir elementos en un set 3 Estructuras de datos / Sets
  • 19. Introducción a Redis Operaciones básicas ● Añadir (sadd) o eliminar (srem) elementos a un set sadd avengers:members “Iron man” “Hulk” “Captain America” ● Ver los valores de un set smembers avengers:members ● Saber si un elemento se encuentra en un set sismember avengers:members “Black widow” ● Operaciones de unión (sunion o sunionstore), intersección (sinter o sinterstore) o diferencias(sdiff o sdiffstore) entre sets. sinter avengers:members x-men:members ● Extraer un elemento aleatorio de un set (spop) o devolverlo sin eliminarlo del set (srandmember) spop avengers:members ● Saber el número de elementos de un set scard avengers:members 3 Estructuras de datos / Sets
  • 20. Introducción a Redis Sorted Sets ● Los sorted sets son sets con posibilidad de ser ordenados ● Cada elemento en un sorted set está asociado a un float denominado score ● Dados dos elementos A y B con scores diferentes, A > B si A.score > B.score ● Dados dos elementos A y B con scores iguales, A > B si el string A es lexicográficamente > string B. ● Los sorted sets permiten operar basándose en el scope ● Desde la versión 2.8, Redis permite obtener rangos basados en reglas lexicográficas 3 Estructuras de datos / Sorted sets
  • 21. Introducción a Redis Operaciones básicas ● Añadir (zadd) o eliminar (zrem) elementos a un sorted set con parámetros adicionales, como sólo añadirlo si el elemento ya existe (XX) o no permitir actualizar existentes sino añadir nuevos (NX) zadd avengers:members 1 “Iron man” 2 “Hulk” 3 “Captain America” ● Ver los valores de un sorted set dado un rango determinado ordenado ascendente (zrange) o descendentemente (zrevrange) zrange avengers:members 0 -1 -withscores (para obtener sus scores) ● Devolver un subconjunto de elementos basándose en scores ordenado ascendente (zrangebayscore) o descendentemente (zrevrangebyscore) zrangebyscore avengers:members -inf 2 ● Eliminar elementos basándose en scores zremrangebyscore avengers:members 2 3 ● Obtener la posición de un elemento en un sorted set ordenado ascendente (zrank) o descendentemente (zrevrank) zrank avengers:members “Iron man” 3 Estructuras de datos / Sorted sets
  • 22. Introducción a Redis Operaciones básicas con reglas lexicográficas ● Obtener el rango de elementos ordenados ascendente (zrangebylex) o descendentemente (zrevrangebylex) siguiendo reglas lexicográficas zrangebylex avengers:members [B [L 3 Estructuras de datos / Sorted sets
  • 23. Introducción a Redis HyperLogLogs ● Algoritmo para calcular el número de entradas distintas en un conjunto dado. Operaciones ● Añadir a un HLL una estructura de datos pfadd avengers:members “Iron man” “Hulk” “Captain America” ● Contar los distintos valores introducidos en el HLL pfcount avengers:members > 3 ● Mezclar múltiples HLLs en uno nuevo pfmerge destination hll1 hll2 hll3 3 Estructuras de datos / HyperLogLogs
  • 24. Implantación de Continuous Delivery en el Área Digital - Configuración y despliegue Expiración del dato 4
  • 25. Introducción a Redis Conceptos básicos ● Redis permite marcar una clave para que expire. Se puede notificar con un tiempo absoluto (segundos desde 1 de Enero de 1970) o con un tiempo para que la clave se mantenga viva (en segundos o milisegundos). ● Es una operación basada en la clave, con lo que es independiente del tipo de estructura de datos que utilicemos ● Es una herramienta muy poderosa a la hora de implementar sistemas de caché basados en Redis 4 Expiración del dato
  • 26. Introducción a Redis Operaciones básicas ● Fijar expiración en segundos (expire) o milisegundos (pexpire) de una clave ya existente, una vez pasado ese tiempo, la clave se elimina expire avengers:iron-man 10 ● Fijar expiración de una clave en un determinado momento y eliminarla una vez llegado a ese momento expireat avengers iron-man 1356933600 ● Comprobar el Time To Live de una clave en segundos (ttl) o en milisegundos (pttl) ttl avengers iron-man ● Eliminar la expiración de una clave persist avengers:iron-man ● Obtener la posición de un elemento en un sorted set ordenado ascendente (zrank) o descendentemente (zrevrank) zrank avengers:members “Iron man” 4 Expiración del dato
  • 27. Implantación de Continuous Delivery en el Área Digital - Configuración y despliegue Publicación y suscripción 5
  • 28. Introducción a Redis Conceptos básicos ● Redis proporciona soporte para la publicación y suscripción a canales. ● Permite la suscripción a varios canales ● Permite la suscripción a un patrón de canales, por ejemplo, suscribirse a todos aquellos que comiencen por un string determinado ● Permite la desuscripción de uno o varios canales 5 Publicación y suscripción
  • 29. Introducción a Redis Operaciones básicas ● Suscribirse (subscribe) o desuscribirse (unsubscribe) a varios canales. subscribe avengers:notifications avengers:warnings ● Suscribirse (psubscribe) o desuscribirse (punsubscribe) a canales que cumplan unas condiciones psubscribe avengers:* ● Publicar un mensaje en un canal. Devuelve el número de suscriptores que recibieron el mensaje. publish avengers:notifications “Avengers assemble” >3 5 Publicación y suscripción
  • 30. Implantación de Continuous Delivery en el Área Digital - Configuración y despliegue Persistencia 6
  • 31. Introducción a Redis Conceptos básicos ● Redis permite la persistencia de su información en disco ● El mecanismo RDB va haciendo snapshots de nuestro conjunto de datos en intervalos que nosotros definimos ● El mecanimos AOF escribe cada operación recibida por el servidor, de modo que en cada inicio del servidor podemos reconstruir el conjunto de datos original ● Estos mecanismos se pueden combinar, haciendo que, en caso de reinicio del servidor, la estrategia AOF reconstruya el conjunto de datos original ● Redis permite deshabilitar la persistencia por completo, haciendo que el conjunto de datos exista sólo mientras el servidor está ejecutándose 6 Persistencia
  • 32. Introducción a Redis Ventajas ● Es la estrategia adecuada en caso de querer hacer backups de nuestros datos ● Es muy bueno en caso de recuperación tras un desastre ● Maximiza el rendimiento de Redis, ya que el proceso padre sólo tiene que lanzar un hijo para que persista esta información, de modo que nunca el proceso padre de Redis tendrá que ejecutar operaciones de E/S ● Permite una recuperación del conjunto de datos más rápida que AOF en caso de desastre Inconvenientes ● No es buena en caso de querer minimizar la pérdida de datos en caso de desastre ya que se definen save points y la pérdida de servicio puede ser entre alguno de ellos ● Si el conjunto de datos es muy grande, el lanzamiento del proceso hijo que ejecuta las operaciones de E/S puede ser demasiado costoso y desembocar en pérdida de servicio a clientes de algunos milisegundos o incluso en segundos si el conjunto de datos es enorme y el rendimiento de la CPU es bajo 6 Persistencia / RDB
  • 33. Introducción a Redis Ventajas ● Favorece la durabilidad de la información. Definiendo las políticas de sincronización con el fichero puede ser tan eficiente como RDB ● El fichero donde se guardan las operaciones se abre en modo append, así no se penaliza la búsqueda dentro del mismo y no hay riesgo de corrupción ● Cuando el fichero se hace demasiado grande, Redis permite la creación de nuevos ficheros y el cambio de agujas para escribir sobre este nuevo fichero de forma silenciosa y eficiente. ● Permite que tengamos guardadas todas las operaciones que se han realizado sobre el servidor Inconvenientes ● Los ficheros son habitualmente más grandes que sus equivalentes en RDB para el mismo conjunto de datos ● AOF puede ser más lento que RDB dependiendo de la política de sincronización que se escoja 6 Persistencia / AOF
  • 34. Introducción a Redis Qué estrategia usar La indicación que Redis nos hace es que utilicemos ambas para mantener un nivel de seguridad en el dato similiar al que nos ofrece, por ejemplo, PostGreSQL. En caso de que nuestros datos no sean tan importantes como para poder permitirnos una pérdida de minutos en el servicio, se recomienda el uso de RDB sólamente, ya que ofrece mayor rendimiento. 6 Persistencia / Qué estrategia usar
  • 35. Implantación de Continuous Delivery en el Área Digital - Configuración y despliegue Redis Sentinel 7
  • 36. Introducción a Redis Conceptos básicos ● Redis permite la persistencia de su información en disco ● El mecanismo RDB va haciendo snapshots de nuestro conjunto de datos en intervalos que nosotros definimos ● El mecanimos AOF escribe cada operación recibida por el servidor, de modo que en cada inicio del servidor podemos reconstruir el conjunto de datos original ● Estos mecanismos se pueden combinar, haciendo que, en caso de reinicio del servidor, la estrategia AOF reconstruya el conjunto de datos original ● Redis permite deshabilitar la persistencia por completo, haciendo que el conjunto de datos exista sólo mientras el servidor está ejecutándose 6 Persistencia
  • 37. Implantación de Continuous Delivery en el Área Digital - Configuración y despliegue Redis Cluster 8
  • 38. Introducción a Redis Conceptos básicos ● Redis permite la persistencia de su información en disco ● El mecanismo RDB va haciendo snapshots de nuestro conjunto de datos en intervalos que nosotros definimos ● El mecanimos AOF escribe cada operación recibida por el servidor, de modo que en cada inicio del servidor podemos reconstruir el conjunto de datos original ● Estos mecanismos se pueden combinar, haciendo que, en caso de reinicio del servidor, la estrategia AOF reconstruya el conjunto de datos original ● Redis permite deshabilitar la persistencia por completo, haciendo que el conjunto de datos exista sólo mientras el servidor está ejecutándose 6 Persistencia
  • 39. Implantación de Continuous Delivery en el Área Digital - Configuración y despliegue ¡Muchas gracias!