SlideShare una empresa de Scribd logo
1 de 29
Fernando Escolar
@fernandoescolar
Alex Casquete
@acasquete
¿Qué vamos a ver hoy?
• ¿Qué es Redis?
• Operaciones / Tipos de datos
• Transacciones
• Ejemplo Red Social
Algunos datos
• Redis = REmote DIctionary Server
• La primera release fue en 2009
• La versión más reciente: 2.8.19
• Escrito en C
• Tiene librerías para más de 30 lenguajes de programación
• Una buena documentación
Redis
“Redis es un Sistema de almacenamiento y caché avanzado, que 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
• Redis trabaja in-memory pero persiste en disco
• 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 la memoria disponible
• max. 232 keys
Diferencias con Memcached
• Memcached es un “Sistema de cache en memoria distribuido”
• Redis persiste los datos en el disco de forma eventual
• Memcached es un sistema caché LRU (Least Recently Used)
• Redis tiene diferentes tipos de datos y features
• Memcached es multi hilo
• Velocidad similar (en local)
Memcached
Redis
Demo: Consola
Operaciones / Tipos de datos
BASIC
• SET key value [EX seconds] [PX milliseconds] [NX|XX]
• GET key
• DEL key
BASIC
• EXISTS key
• KEYS pattern
• EXPIRE key seconds
• MGET key [key …]
• MSET key value [key value …]
STRINGS
• STRLEN KEY
• APPEND key value
ENTEROS
• INCR key / INCRBY key increment
• DECR key / DECRBY key increment
HASHES
• HSET key field value
• HGET key field
• HGETALL key
• HDEL key field [field …]
LISTAS
• LSET key index value
• LPUSH key value [value …] / RPUSH key value [value …]
• LPOP key / RPOP key
• LRANGE key start stop
• LREM key count value
SETS
• SADD key member [member …]
• SMEMBERS key / SRANDMEMBER key [count]
• SSCAN key cursor [MATCH pattern] [COUNT count]
• SISMEMBER key member
• SPOP key
• SREM key member [member …]
OPERACIONES CON SETS
• SINTER key [key …] / SINTERSTORE destination key [key …]
• SDIFF key [key …] / SDIFFSTORE destination key [key …]
• SUNION key [key …] / SUNIONSTORE destination key [key …]
SORTED SETS
• ZADD key score member [score member …]
• ZSCORE key member
• ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset
• count]
• ZREM key member [member ...]
• ZREMRANGEBYLEX key min max
• ZINCRBY key increment member
HYPERLOGLOG
“Hyperloglog es una técnica aproximada para calcular el número de
entradas distintas en un conjunto (cardinalidad). Esto se consigue
utilizando poca memoria. Por ejemplo, para conseguir el 99% de
precision, se necesitan solo 16 Kb.”
PUB/SUB
• SUBSCRIBE channel [channel …]
• UNSUBSCRIBE [channel [channel …]]
• PUBLISH channel message
TRANSACCIONES
• MULTI
• EXEC
• DISCARD
TRANSACCIONES
WATCH mykey
val = GET mykey
val = val + 1
MULTI
SET mykey $val
EXEC
HyperLogLog
• PFADD key element [element …]
• PFCOUNT key [key …]
• PFMERGE destkey sourcekey [sourcekey ...]
• Caso de uso: Track Unique Visitors
SCRIPTING
Ejecutar scripts LUA en lado servidor
• EVAL script numkeys key [key ...] arg [arg …]
• SCRIPT LOAD script
• EVALSHA sha1 numkeys key [key ...] arg [arg ...]
CASOS DE USO
• 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
• …
Demo: Retwis
EN RESUMEN
• Maneja cadenas de texto (o byte arrays)
• 5 tipos de datos:
• Keys
• Hashes
• Lists
• Sets
• Sorted Sets
• Pub/Sub
• Operaciones con datos
• Scripts en LUA
• En memoria, pero persiste en forma de snapshots
MÁS INFORMACIÓN
• https://github.com/fernandoescolar/Tokiota.Redis
• http://redis.io/documentation
• https://servicestack.net/
• Redis Bitmaps
http://blog.getspool.com/2011/11/29/fast-easy-realtime-metrics-
using-redis-bitmaps/
Introducción a Redis: tipos de datos, operaciones y casos de uso

Más contenido relacionado

La actualidad más candente

La actualidad más candente (7)

Servidor de archivos
Servidor de archivosServidor de archivos
Servidor de archivos
 
Tecnologia web
Tecnologia webTecnologia web
Tecnologia web
 
Squid
SquidSquid
Squid
 
Instalación y configuración de un servidor dhcp en linux
Instalación y configuración de un servidor dhcp en linuxInstalación y configuración de un servidor dhcp en linux
Instalación y configuración de un servidor dhcp en linux
 
instalación y configuración de un servidor dhcp en linux
instalación y configuración de un servidor dhcp en linuxinstalación y configuración de un servidor dhcp en linux
instalación y configuración de un servidor dhcp en linux
 
Ayuda
AyudaAyuda
Ayuda
 
Dockeriza tu entorno de desarrollo
Dockeriza tu entorno de desarrolloDockeriza tu entorno de desarrollo
Dockeriza tu entorno de desarrollo
 

Destacado (20)

Diana vela
Diana velaDiana vela
Diana vela
 
Hotel gianna parco card
Hotel gianna parco cardHotel gianna parco card
Hotel gianna parco card
 
Linkedin Profile 2.0 Presentation
Linkedin Profile 2.0 PresentationLinkedin Profile 2.0 Presentation
Linkedin Profile 2.0 Presentation
 
Laranjondo
LaranjondoLaranjondo
Laranjondo
 
SCHC Overview 2013
SCHC Overview 2013SCHC Overview 2013
SCHC Overview 2013
 
Start
StartStart
Start
 
Sa
SaSa
Sa
 
Tizen web app について調べたよ
Tizen web app について調べたよTizen web app について調べたよ
Tizen web app について調べたよ
 
Cinquecento
CinquecentoCinquecento
Cinquecento
 
Marco Gelmetti
Marco GelmettiMarco Gelmetti
Marco Gelmetti
 
Broken hot sauce bottle attacker
Broken hot sauce bottle attackerBroken hot sauce bottle attacker
Broken hot sauce bottle attacker
 
Tecno2
Tecno2Tecno2
Tecno2
 
Victor harris bus 245 power point
Victor harris bus 245 power pointVictor harris bus 245 power point
Victor harris bus 245 power point
 
Public Speaking For Scientists
Public Speaking For ScientistsPublic Speaking For Scientists
Public Speaking For Scientists
 
ульяновск саммит
ульяновск саммитульяновск саммит
ульяновск саммит
 
Psikologi Industri Pengetahuan Konsumen
Psikologi Industri Pengetahuan KonsumenPsikologi Industri Pengetahuan Konsumen
Psikologi Industri Pengetahuan Konsumen
 
Live int-website-in-focus-webinar
Live int-website-in-focus-webinarLive int-website-in-focus-webinar
Live int-website-in-focus-webinar
 
Transitioning from an Early Investigator Award to the Coveted R01
Transitioning from an Early Investigator Award to the Coveted R01Transitioning from an Early Investigator Award to the Coveted R01
Transitioning from an Early Investigator Award to the Coveted R01
 
Car Trading Meeting
Car Trading MeetingCar Trading Meeting
Car Trading Meeting
 
Dia 1
Dia 1Dia 1
Dia 1
 

Similar a Introducción a Redis: tipos de datos, operaciones y casos de uso

Taller Redis
Taller RedisTaller Redis
Taller Redisbetabeers
 
Pon tus aplicaciones a 100 con redis
Pon tus aplicaciones a 100 con redisPon tus aplicaciones a 100 con redis
Pon tus aplicaciones a 100 con redisDaniel Mazzini
 
SQL Server 2017 soporte en Linux
SQL Server 2017 soporte en LinuxSQL Server 2017 soporte en Linux
SQL Server 2017 soporte en LinuxEduardo Castro
 
In memory
In memoryIn memory
In memorySolidQ
 
Meetup: Spark + Kerberos
Meetup: Spark + KerberosMeetup: Spark + Kerberos
Meetup: Spark + KerberosStratio
 
Rendimiento y optimización de MySQL
Rendimiento y optimización de MySQLRendimiento y optimización de MySQL
Rendimiento y optimización de MySQLOnestic
 
Rendimiento y optimización de MySQL
Rendimiento y optimización de MySQLRendimiento y optimización de MySQL
Rendimiento y optimización de MySQLbetabeers
 
Gánale la partida a tu SQL Server, configuración ideal para que todo vaya bie...
Gánale la partida a tu SQL Server, configuración ideal para que todo vaya bie...Gánale la partida a tu SQL Server, configuración ideal para que todo vaya bie...
Gánale la partida a tu SQL Server, configuración ideal para que todo vaya bie...SolidQ
 
Carbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshareCarbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshareJulián Castiblanco
 

Similar a Introducción a Redis: tipos de datos, operaciones y casos de uso (20)

Taller Redis
Taller RedisTaller Redis
Taller Redis
 
intro.ppt
intro.pptintro.ppt
intro.ppt
 
intro.ppt
intro.pptintro.ppt
intro.ppt
 
intro.ppt
intro.pptintro.ppt
intro.ppt
 
Pon tus aplicaciones a 100 con redis
Pon tus aplicaciones a 100 con redisPon tus aplicaciones a 100 con redis
Pon tus aplicaciones a 100 con redis
 
intro.pptx
intro.pptxintro.pptx
intro.pptx
 
Intro (1)
Intro (1)Intro (1)
Intro (1)
 
SQL Server 2017 soporte en Linux
SQL Server 2017 soporte en LinuxSQL Server 2017 soporte en Linux
SQL Server 2017 soporte en Linux
 
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
 
In memory
In memoryIn memory
In memory
 
Meetup spark + kerberos
Meetup spark + kerberosMeetup spark + kerberos
Meetup spark + kerberos
 
Meetup: Spark + Kerberos
Meetup: Spark + KerberosMeetup: Spark + Kerberos
Meetup: Spark + Kerberos
 
Rendimiento y optimización de MySQL
Rendimiento y optimización de MySQLRendimiento y optimización de MySQL
Rendimiento y optimización de MySQL
 
Rendimiento y optimización de MySQL
Rendimiento y optimización de MySQLRendimiento y optimización de MySQL
Rendimiento y optimización de MySQL
 
Gánale la partida a tu SQL Server, configuración ideal para que todo vaya bie...
Gánale la partida a tu SQL Server, configuración ideal para que todo vaya bie...Gánale la partida a tu SQL Server, configuración ideal para que todo vaya bie...
Gánale la partida a tu SQL Server, configuración ideal para que todo vaya bie...
 
In-Memory OLTP en SQL Server 2014
In-Memory OLTP en SQL Server 2014In-Memory OLTP en SQL Server 2014
In-Memory OLTP en SQL Server 2014
 
Hadware y software
Hadware y softwareHadware y software
Hadware y software
 
Carbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshareCarbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshare
 
Proceso de señal
Proceso de señalProceso de señal
Proceso de señal
 
Certification Day
Certification DayCertification Day
Certification Day
 

Más de Fernando Escolar Martínez-Berganza

Roslyn: Hello from the other compiler - dotNet Spain Conference 2016
Roslyn: Hello from the other compiler - dotNet Spain Conference 2016Roslyn: Hello from the other compiler - dotNet Spain Conference 2016
Roslyn: Hello from the other compiler - dotNet Spain Conference 2016Fernando Escolar Martínez-Berganza
 

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

Por qué todo lo que subo a azure esta mal
Por qué todo lo que subo a azure esta malPor qué todo lo que subo a azure esta mal
Por qué todo lo que subo a azure esta mal
 
Deconstrucción de SOLID
Deconstrucción de SOLIDDeconstrucción de SOLID
Deconstrucción de SOLID
 
Gapand - por qué odio git?
Gapand - por qué odio git?Gapand - por qué odio git?
Gapand - por qué odio git?
 
Betabeers - continuous deployment
Betabeers - continuous deploymentBetabeers - continuous deployment
Betabeers - continuous deployment
 
Devops RoadShow: load testing and autoscale
Devops RoadShow: load testing and autoscaleDevops RoadShow: load testing and autoscale
Devops RoadShow: load testing and autoscale
 
Roslyn: Hello from the other compiler - dotNet Spain Conference 2016
Roslyn: Hello from the other compiler - dotNet Spain Conference 2016Roslyn: Hello from the other compiler - dotNet Spain Conference 2016
Roslyn: Hello from the other compiler - dotNet Spain Conference 2016
 
Reconnect 2015 - ALM VSTS
Reconnect 2015 - ALM VSTSReconnect 2015 - ALM VSTS
Reconnect 2015 - ALM VSTS
 
Codemotion 2015 - Unit Testing
Codemotion 2015 - Unit TestingCodemotion 2015 - Unit Testing
Codemotion 2015 - Unit Testing
 
Unit testing en Windows 10
Unit testing en Windows 10Unit testing en Windows 10
Unit testing en Windows 10
 
DotNet Conference: code smells
DotNet Conference: code smellsDotNet Conference: code smells
DotNet Conference: code smells
 
Foro de Arquitectos: caché en azure a fondo
Foro de Arquitectos: caché en azure a fondoForo de Arquitectos: caché en azure a fondo
Foro de Arquitectos: caché en azure a fondo
 
Codemotion: descubriendo las cachés
Codemotion: descubriendo las cachésCodemotion: descubriendo las cachés
Codemotion: descubriendo las cachés
 
Unit tesing y el mito de los 0 bugs
Unit tesing y el mito de los 0 bugsUnit tesing y el mito de los 0 bugs
Unit tesing y el mito de los 0 bugs
 
We Love Js 6 - Knockout js (with Marc Rubiño)
We Love Js 6 - Knockout js (with Marc Rubiño)We Love Js 6 - Knockout js (with Marc Rubiño)
We Love Js 6 - Knockout js (with Marc Rubiño)
 
Mobile services by @quiqu3
Mobile services by @quiqu3Mobile services by @quiqu3
Mobile services by @quiqu3
 
Javascript no es vietnam
Javascript no es vietnamJavascript no es vietnam
Javascript no es vietnam
 
Where is my beer?
Where is my beer?Where is my beer?
Where is my beer?
 
Coding kihon + Zombie Code Survival Guide
Coding kihon + Zombie Code Survival GuideCoding kihon + Zombie Code Survival Guide
Coding kihon + Zombie Code Survival Guide
 
Level up your skills
Level up your skillsLevel up your skills
Level up your skills
 
Introducción a TDD
Introducción a TDDIntroducción a TDD
Introducción a TDD
 

Último

Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 

Último (20)

Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 

Introducción a Redis: tipos de datos, operaciones y casos de uso

  • 2. ¿Qué vamos a ver hoy? • ¿Qué es Redis? • Operaciones / Tipos de datos • Transacciones • Ejemplo Red Social
  • 3. Algunos datos • Redis = REmote DIctionary Server • La primera release fue en 2009 • La versión más reciente: 2.8.19 • Escrito en C • Tiene librerías para más de 30 lenguajes de programación • Una buena documentación
  • 4. Redis “Redis es un Sistema de almacenamiento y caché avanzado, que 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.”
  • 5. Redis • Redis trabaja in-memory pero persiste en disco • 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 la memoria disponible • max. 232 keys
  • 6. Diferencias con Memcached • Memcached es un “Sistema de cache en memoria distribuido” • Redis persiste los datos en el disco de forma eventual • Memcached es un sistema caché LRU (Least Recently Used) • Redis tiene diferentes tipos de datos y features • Memcached es multi hilo • Velocidad similar (en local)
  • 10. BASIC • SET key value [EX seconds] [PX milliseconds] [NX|XX] • GET key • DEL key
  • 11. BASIC • EXISTS key • KEYS pattern • EXPIRE key seconds • MGET key [key …] • MSET key value [key value …]
  • 12. STRINGS • STRLEN KEY • APPEND key value
  • 13. ENTEROS • INCR key / INCRBY key increment • DECR key / DECRBY key increment
  • 14. HASHES • HSET key field value • HGET key field • HGETALL key • HDEL key field [field …]
  • 15. LISTAS • LSET key index value • LPUSH key value [value …] / RPUSH key value [value …] • LPOP key / RPOP key • LRANGE key start stop • LREM key count value
  • 16. SETS • SADD key member [member …] • SMEMBERS key / SRANDMEMBER key [count] • SSCAN key cursor [MATCH pattern] [COUNT count] • SISMEMBER key member • SPOP key • SREM key member [member …]
  • 17. OPERACIONES CON SETS • SINTER key [key …] / SINTERSTORE destination key [key …] • SDIFF key [key …] / SDIFFSTORE destination key [key …] • SUNION key [key …] / SUNIONSTORE destination key [key …]
  • 18. SORTED SETS • ZADD key score member [score member …] • ZSCORE key member • ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset • count] • ZREM key member [member ...] • ZREMRANGEBYLEX key min max • ZINCRBY key increment member
  • 19. HYPERLOGLOG “Hyperloglog es una técnica aproximada para calcular el número de entradas distintas en un conjunto (cardinalidad). Esto se consigue utilizando poca memoria. Por ejemplo, para conseguir el 99% de precision, se necesitan solo 16 Kb.”
  • 20. PUB/SUB • SUBSCRIBE channel [channel …] • UNSUBSCRIBE [channel [channel …]] • PUBLISH channel message
  • 22. TRANSACCIONES WATCH mykey val = GET mykey val = val + 1 MULTI SET mykey $val EXEC
  • 23. HyperLogLog • PFADD key element [element …] • PFCOUNT key [key …] • PFMERGE destkey sourcekey [sourcekey ...] • Caso de uso: Track Unique Visitors
  • 24. SCRIPTING Ejecutar scripts LUA en lado servidor • EVAL script numkeys key [key ...] arg [arg …] • SCRIPT LOAD script • EVALSHA sha1 numkeys key [key ...] arg [arg ...]
  • 25. CASOS DE USO • 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 • …
  • 27. EN RESUMEN • Maneja cadenas de texto (o byte arrays) • 5 tipos de datos: • Keys • Hashes • Lists • Sets • Sorted Sets • Pub/Sub • Operaciones con datos • Scripts en LUA • En memoria, pero persiste en forma de snapshots
  • 28. MÁS INFORMACIÓN • https://github.com/fernandoescolar/Tokiota.Redis • http://redis.io/documentation • https://servicestack.net/ • Redis Bitmaps http://blog.getspool.com/2011/11/29/fast-easy-realtime-metrics- using-redis-bitmaps/