SlideShare una empresa de Scribd logo
1 de 39
Pon tus aplicaciones a 100 con Redis

Daniel Mazzini

Arquitecto @Tokiota
Acerca de ..
• Esposo y padre
• Arquitecto en @tokiota (estrenando Gold Partner)

東京‘

TOKIOTA
NOSQL … el porque
• Base de datos relacionales:
• Gran cantidad de datos
• Concurrencia / bloqueo
• Schemas vs Agile
• Coste de licenciamientos

• Modelos de NoSQL
• Key – Value
¿Qué es redis?
SET nombre “Daniel”
• REmote DIrectory Server
• 20k líneas en C++ de Salvatore Sanfilippo GET nombre
=> “Daniel”
• Open source
• Actualmente patrocinado por VMware
• Servidor de estructuras de datos en memoria
en memoria…

Pero configurándolo
puede persistir a disco…
¿Por qué redis?
• Es realmente muy rápida
• Single Thread
• Muchos clientes
•
•
•
•

Java
Ruby
Python
Y como no … .Net

redis-benchmark -r 1000000 -q

Los ejemplos están con ServiceStack.Redis

install-package servicestack.redis
Sobre servicestack.redis

• Tienes al menos 3 interfaz para el servicio de Redis

• IRedisNativeClient tienes los mismos nombres de métodos que
Redis
• Puedes usar la documentación de los comandos del propio sitio de redis

+ abstracto -

IRedisTypedClient<TPoco> >
IRedisClient (string) >
IRedisNativeClient (raw byte[])
¿Quién usa redis?

http://redis.io/topics/whos-using-redis
Tipos de datos de valor
Las claves
• Son simple string
• Deben ser únicas
• Seudo nomenclatura

• “objeto-tipo:id:campo”
• “nivelMayornivelInferior”

• Sin caracteres especiales
• Pueden expirar
String

key

string

Operaciones
Get
Set

• Tipo de dato simple
• {Json} u otro formato serializado

Append
Lista
Operaciones
RPush
key

LRange
LIndex
LPop
Lista
Operaciones
RPush
key

LRange
A

B

C

LIndex
LPop
Lista
Operaciones
RPush
key

LRange
C

A

B

C

LIndex
LPop
Lista
Operaciones
RPush
key

LRange
C

A

B

C

LIndex
LPop

LPop
Lista
Operaciones
RPush
key

LRange
C

A

B

C

LIndex
LPop

LPop

RPop
Set

Operaciones

B

SAdd
key

A

SRem
C

SMembers
SIsMember
Order Set
Operaciones
ZAdd
C:1

ZRange
ZRangeByScore

key

A:3
X:3
B:5

ZRem
Hash
key

Operaciones

Sub-clave 1

valor

Sub-clave 2

valor

HGet

Sub-clave 3

valor

HGetAll

HSet

HDel
Contador
• Contadores atómicos
• INCR “user:id”
Publicador / suscriptor
Transacción
Caso #1 Cache

cache
Caso #2 Page Counter
• ActionFilter de MVC

pageCounter

Controller : Action

100
Caso #2 Page Counter
• ActionFilter de MVC

pageCounter

Controller : Action

100

Home : Index

5
Caso #3 ¿Quien esta en línea?

Usuarios online
Caso #3 ¿Quien esta en línea?

Usuarios online

Mis amigos
Caso #3 ¿Quien esta en línea?

Usuarios online

Amigos online

Mis amigos
Caso #3 ¿Quien esta en línea?

Usuarios online

Amigos online

Mis amigos

userLive:201311081630
userLive:201311081631
userLive:201311081632

Por cada minuto, una clave
Caso #4 ReadModel en un CQRS

Batch
Updater

while(true)
{
calcularView();
}
Caso #4 ReadModel en un CQRS

Batch
Updater
Read
Model

while(true)
{
calcularView();
}
Caso #4 ReadModel en un CQRS

Batch
Updater

leer
Read
Model

while(true)
{
calcularView();
}
Caso #4 ReadModel en un CQRS

Quick
Updater

escribir

Batch
Updater

leer
Read
Model

while(true)
{
calcularView();
}
Caso #4 ReadModel en un CQRS

Quick
Updater

escribir

escribir

Pub/sub
Batch
Updater

leer
Read
Model

while(true)
{
calcularView();
}
Caso #4 ReadModel en un CQRS

Quick
Updater

escribir

escribir

Pub/sub
Batch
Updater

leer
Read
Model

Power by redis 

while(true)
{
calcularView();
}
Caso #5 Autocomplete
ZADD “P” 0
ZADD “PL” 0
ZADD “PLA” 0
ZADD “PLAN” 0
ZADD “PLAN*” 0
ZADD “PLANE” 0
ZADD “PLANET” 0
ZADD “PLANETA*” 0
ZADD “PLANI” 0
ZADD “PLANIF” 0
ZADD “PLANIFI” 0
ZADD “PLANIFIC” 0
ZADD “PLANIFICA” 0
ZADD “PLANIFICAD” 0
ZADD “PLANIFICADO” 0
ZADD “PLANIFICADOR*” 0
Conclusión
• Redis = Rápido
• Redis = Mas que Key-Value
• El código de la sesión esta en:
https://github.com/tokiota/BcnDevConRedis
Preguntas?
MERCI
GRACIAS
THANKS

Resum Executiu

東京‘

TOKIOTA

Más contenido relacionado

Similar a Pon tus aplicaciones a 100 con redis

Aplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con RedisAplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con RedisAlberto Gimeno
 
Conociendo los cambios de SQL Server a partir de 2012 a 2016
Conociendo los cambios de SQL Server a partir de 2012 a 2016Conociendo los cambios de SQL Server a partir de 2012 a 2016
Conociendo los cambios de SQL Server a partir de 2012 a 2016Joseph Lopez
 
Introducción R - Primeros pasos
Introducción R - Primeros pasosIntroducción R - Primeros pasos
Introducción R - Primeros pasosSolidQ
 
Desarrollo sistemas web con PHP, HTML5, GOOGLE MAPS
Desarrollo sistemas web con PHP, HTML5, GOOGLE MAPSDesarrollo sistemas web con PHP, HTML5, GOOGLE MAPS
Desarrollo sistemas web con PHP, HTML5, GOOGLE MAPSArturo CUBA TORRES
 
Tendencias arquitectura y desarrollo 2019
Tendencias arquitectura y desarrollo 2019Tendencias arquitectura y desarrollo 2019
Tendencias arquitectura y desarrollo 2019Manuel Zapata
 
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
 
Redis, base de datos NoSQL clave-valor
Redis, base de datos NoSQL clave-valorRedis, base de datos NoSQL clave-valor
Redis, base de datos NoSQL clave-valorAlberto Gimeno
 
Escalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuariosEscalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuariosAmazon Web Services LATAM
 
Grails, opción real y escalable para sitios web de alta carga
Grails, opción real y escalable para sitios web de alta cargaGrails, opción real y escalable para sitios web de alta carga
Grails, opción real y escalable para sitios web de alta cargaDomingo Suarez Torres
 
Azure Realtime analytics: Análisis de datos en tiempo real
Azure Realtime analytics: Análisis de datos en tiempo realAzure Realtime analytics: Análisis de datos en tiempo real
Azure Realtime analytics: Análisis de datos en tiempo realSoftware Guru
 
Data Platform de BEEVA
Data Platform de BEEVAData Platform de BEEVA
Data Platform de BEEVABEEVA_es
 
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...SolidQ
 
Web cast de optimización Sql Server - Arquitectura
Web cast de optimización Sql Server - ArquitecturaWeb cast de optimización Sql Server - Arquitectura
Web cast de optimización Sql Server - ArquitecturaJOSE AHIAS LOPEZ PORTILLO
 
Fundamentos de Microsoft .NET y C#
Fundamentos de Microsoft .NET y C#Fundamentos de Microsoft .NET y C#
Fundamentos de Microsoft .NET y C#Humberto Jaimes
 

Similar a Pon tus aplicaciones a 100 con redis (20)

Aplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con RedisAplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con Redis
 
Conociendo los cambios de SQL Server a partir de 2012 a 2016
Conociendo los cambios de SQL Server a partir de 2012 a 2016Conociendo los cambios de SQL Server a partir de 2012 a 2016
Conociendo los cambios de SQL Server a partir de 2012 a 2016
 
Introducción R - Primeros pasos
Introducción R - Primeros pasosIntroducción R - Primeros pasos
Introducción R - Primeros pasos
 
Desarrollo sistemas web con PHP, HTML5, GOOGLE MAPS
Desarrollo sistemas web con PHP, HTML5, GOOGLE MAPSDesarrollo sistemas web con PHP, HTML5, GOOGLE MAPS
Desarrollo sistemas web con PHP, HTML5, GOOGLE MAPS
 
Tendencias arquitectura y desarrollo 2019
Tendencias arquitectura y desarrollo 2019Tendencias arquitectura y desarrollo 2019
Tendencias arquitectura y desarrollo 2019
 
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...
 
Redis, base de datos NoSQL clave-valor
Redis, base de datos NoSQL clave-valorRedis, base de datos NoSQL clave-valor
Redis, base de datos NoSQL clave-valor
 
Linq - Introducción
Linq - IntroducciónLinq - Introducción
Linq - Introducción
 
Taller de c sharp
Taller de c sharpTaller de c sharp
Taller de c sharp
 
Servicios de Bases de Datos de AWS
Servicios de Bases de Datos de AWSServicios de Bases de Datos de AWS
Servicios de Bases de Datos de AWS
 
Escalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuariosEscalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuarios
 
Grails, opción real y escalable para sitios web de alta carga
Grails, opción real y escalable para sitios web de alta cargaGrails, opción real y escalable para sitios web de alta carga
Grails, opción real y escalable para sitios web de alta carga
 
Azure Realtime analytics: Análisis de datos en tiempo real
Azure Realtime analytics: Análisis de datos en tiempo realAzure Realtime analytics: Análisis de datos en tiempo real
Azure Realtime analytics: Análisis de datos en tiempo real
 
Data Platform de BEEVA
Data Platform de BEEVAData Platform de BEEVA
Data Platform de BEEVA
 
Redis: no solo una caché
Redis: no solo una cachéRedis: no solo una caché
Redis: no solo una caché
 
Sistema de Bases de Datos AWS
Sistema de Bases de Datos AWSSistema de Bases de Datos AWS
Sistema de Bases de Datos AWS
 
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
 
Web cast de optimización Sql Server - Arquitectura
Web cast de optimización Sql Server - ArquitecturaWeb cast de optimización Sql Server - Arquitectura
Web cast de optimización Sql Server - Arquitectura
 
Fundamentos de Microsoft .NET y C#
Fundamentos de Microsoft .NET y C#Fundamentos de Microsoft .NET y C#
Fundamentos de Microsoft .NET y C#
 
Base De Datos
Base De DatosBase De Datos
Base De Datos
 

Último

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
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
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 

Último (13)

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
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
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 

Pon tus aplicaciones a 100 con redis