SlideShare a Scribd company logo
1 of 105
Download to read offline
Monday, June 24, 13
Monday, June 24, 13
¿Quién soy?
• Backend Core Tech Lead @ Socialpoint
Arquitectura y desarrollo de aplicaciones que
eficientemente respondan peticiones de millones de
usuarios cada día
• Redis Fan
• Made in Cuba
• Poco original eligiendo memes
• @ronnylt
Monday, June 24, 13
Hablemos de algunos
de nuestros desafíos
como desarrolladores
Monday, June 24, 13
Tenemos aplicaciones que
por su naturaleza no es
posible usar una cache
Monday, June 24, 13
Tenemos cientos, miles,
de usuarios concurrentes y
necesitamos una solución
escalable para almacenar las
sesiones
Monday, June 24, 13
Queremos saber quién
y cómo se está usando
nuestra aplicación
Monday, June 24, 13
Redis WTF?
Redis FTW!
Monday, June 24, 13
Agenda
• Redis y sus características
• Entendiendo Redis
• Conectando desde PHP
• Integrando Redis en Symfony2
• Casos de uso
Monday, June 24, 13
REDISYSUS
CARACTERÍSTICAS
Monday, June 24, 13
¿Qué es Redis?
• REmote DIctionary Server
• Creado en 2009 por Salvatore Sanfilipo
(@antirez)
• Open source
Monday, June 24, 13
Mejor definido como:
NoSQL
Monday, June 24, 13
Monday, June 24, 13
advanced
in-memory
key-value
data-structure server
Redis
Monday, June 24, 13
Data Structure Server
• Cadenas
• Listas
• Conjuntos
• Conjuntos ordenados
• Hashes (hash maps)
Monday, June 24, 13
In-memory Database
• Datos deben caber en memoria
• Persistencia configurable
• “Memory is the new disc, disc is the new
tape”
Monday, June 24, 13
Advanced key-value
store database
• Persistencia (snapshot, append-only file)
• Replicación (master/slave)
• Transacciones
• Pipelining
• Publisher/Subscriber (pub/sub)
• Lua scripting
Monday, June 24, 13
Ideal para
• Analíticas real-time
• Tracking
• Caching server (memcached on steroid)
• Colas de trabajo
• Escritura/Lectura intensiva (sesiones)
Monday, June 24, 13
ENTENDIENDO
REDIS
Monday, June 24, 13
Claves y valores
• Los datos (values) son refereciados a través
de claves (keys)
• Los datos pueden ser recuperados solo si
conocemos el nombre de la clave
Monday, June 24, 13
Claves
(keys)
• Únicas dentro de la BD
• Binary safe string
• Claves muy grandes pueden impactar en el
rendimimiento
• Claves muy pequeñas no aportan mucho
(u:123:n vs user:123:name)
Monday, June 24, 13
No es un RMDBS
• No hay consultas (queries)
• No hay índices
• No hay esquemas
Monday, June 24, 13
Monday, June 24, 13
Comandos
• Lenguaje de comandos fácil de usar y de
aprender
• Los comandos (en su mayoría) son aplicables
a un tipo de datos específico
Monday, June 24, 13
Tipos de datos
Cadenas
Listas
Conjuntos
Conjuntos ordenados
Hashes
Data structure server
Monday, June 24, 13
Cadenas
• Tipo de dato simple (cualquier cadena binary-safe)
• Tamaño máximo de 512 MB
key string
GET, SET, STRLEN,APPEND, GETRANGE, SETRANGE
http://redis.io/commands#string
Monday, June 24, 13
Casos de uso cadenas
• Almacenamiento de cualquier dato (serializado):
GET, SET
• Vector de acceso aleatorio con GETRANGE,
SETRANGE
• Mapa de bits usando GETBIT, SETBIT,
BITCOUNT
Monday, June 24, 13
Casos de uso cadenas
• Contadores atómicos con:
INCR, DECR
INCRBY, DECRBY
INCRFLOATBY
INCR dowloads:item:123
=> 450
INCR dowloads:item:123
=> 451
Monday, June 24, 13
Listas
• Listado de cadenas donde el orden es importante
• Operaciones de inserción por la izquierda y por
la derecha o por posición
• Máxima longitud de 2^32 -1 (+4 billones)
key s2s1 s3...
http://redis.io/commands#list
Monday, June 24, 13
Casos de uso Listas
• Representación de colas (insertando por la
derecha, leyendo por la izquierda) RPUSH, LPOP
• Representación de pilas (insertando y leyendo por
la izquierda) LPUSH, LPOP
• Comandos blocking BLPOP, BRPOP, BRPOPLPUSH
Monday, June 24, 13
Conjuntos
• Colección de elementos únicos donde el
orden no importa
• Operaciones típicas de conjuntos sobre los
datos
key
blue
green
red
black
Monday, June 24, 13
Operaciones de
conjuntos
SINTERSECT SUNION
SDIFF
Monday, June 24, 13
Casos de uso
Conjuntos
• Representación de relaciones
• Tracking de sucesos únicos
• Cualquier problema donde por su naturaleza se
realicen operaciones sobre conjuntos
Monday, June 24, 13
Conjuntos Ordenados
• Conjuntos de datos, pero ordenados por
un score
• Elementos únicos dentro del conjunto, cada
uno con un score asignado
key
blue – 520
green – 890
red – 303
black – 680
Monday, June 24, 13
Conjuntos Ordenados
• Operaciones de conjuntos aplicables
• Operaciones de acceso por score y por rango en
tiempo constante y predecible
http://redis.io/commands#sorted_set
Monday, June 24, 13
Casos de uso
Conjuntos Ordenados
• Leaderboards
• Rankings
• Tracking basado en tiempo
Monday, June 24, 13
Hashes
• Múltiples campo => valor en una misma clave
• Hasta un máximo de 2^32 -1 pares campo => valor
key field1 value1
field2 value2
field3 value3
http://redis.io/commands#hash
Monday, June 24, 13
Hashes
• Puede verse como un arreglo asociativo en PHP:
clave => [
campo1 => valor1,
campo2 => valor2,
campo3 => valor3
]
• Operaciones sobre campos individuales
Monday, June 24, 13
Casos de uso Hashes
• Almacenamiento de objetos compuestos
por varios campos
• Mappings
Monday, June 24, 13
Resumiendo...
• Tenemos la oportunidad de usar la estructura
de datos adecuada para cada tipo de problema
• Tendremos tiempos de ejecución constantes y
predecibles, sin importar el tamaño de los
conjuntos de datos (dataset)
Monday, June 24, 13
CONECTANDO
DESDE
PHP
Monday, June 24, 13
Clientes para PHP
• https://github.com/nrk/predis
• https://github.com/nicolasff/phpredis
Clientes disponibles para la mayoría de los lenguajes de
programación (http://redis.io/clients)
Monday, June 24, 13
Predis
"require": {
"predis/predis": "~0.8.3"
},
• Escrito en PHP
• Maduro y activamente mantenido
• Extensible
• Feature-complete (pipelines, client side sharding,
server profiles, master/slave config, etc.)
Monday, June 24, 13
phpredis
• Escrito en C como una extensión PHP
• Listo para producción
• Extremadamente rápido
• No backward compatible con anteriores
versions de Redis
Monday, June 24, 13
¿Cuál usar?
• Depende...
• Predis cubre la mayoría de las necesidades,
fácil de instalar con composer, y nos ofrece
un rendimiento aceptable
• phpredis si necesitas un rendimiento
excepcional
Monday, June 24, 13
La latencia de red sigue
siendo el principal
“performance killer”,
no el cliente
Monday, June 24, 13
INTEGRANDOREDIS
EN
SYMFONY2
Monday, June 24, 13
Monday, June 24, 13
SncRedisBundle
{
"require": {
"snc/redis-bundle": "1.1.*"
}
}
https://github.com/snc/SncRedisBundle
Monday, June 24, 13
SncRedisBundle
• Integra Predis y phpredis en Symfony2
• Soporte para:
• Session storage
• Monolog logging handler
• SwiftMailer Spooling
• Doctrine caching
Monday, June 24, 13
Definiendo clientes
snc_redis:
clients:
default:
type: predis
alias: default
dsn: redis://redis.example.com
session:
type: predis
alias: session
dsn:
- redis://rses1.example.com
- redis://rses2.example.com
config.yml / redis.yml
Monday, June 24, 13
Configuración avanzada
snc_redis:
clients:
cache:
type: predis
alias: cache
dsn:
- redis://cache1.example.com
- redis://cache2.example.com
options:
profile: 2.6
connection_timeout: 10
readwrite_timeout: 30
config.yml / redis.yml
Monday, June 24, 13
Obteniendo el cliente a
través del container
$redis = $container->get('snc_redis.default');
$key = 'downloads:' . $pid . ':count'
$downloads = $redis->incr($key);
php app/console container:debug | grep snc_redis
Monday, June 24, 13
Clientes registrados
como servicios
php app/console container:debug
snc_redis.default
Information for service snc_redis.default
Service Id snc_redis.default
Class PredisClient
Tags -
Scope container
Public yes
Synthetic no
Required File -
Monday, June 24, 13
Inyectando Redis como
dependencia
namespace AcmeDemoBundleService;
use SncRedisBundleClientPredis as Redis;
class DownloadCounter
{
protected $redis;
public function __construct(Redis $redis)
{
$this->redis = $redis;
}
public function count($itemId)
{
return $this->redis->incr('downloads:' . $itemId . ':count');
}
}
Monday, June 24, 13
Inyectando Redis como
dependencia
<service id="acme.demo.download_counter"
class="AcmeDemoBundleServiceDownloadCounter">
...
<argument type="service" id="snc_redis.default" />
...
</service>
Monday, June 24, 13
Sesiones
Monday, June 24, 13
Sesiones
• Difícil de escalar con la configuración por
defecto
• Por naturaleza no cacheable (read-change-
write back)
• Se necesita mantener estado consistente
Monday, June 24, 13
Estado inconsistente en cada nodo
(no sticky sessions)
Monday, June 24, 13
• Difícil de escalar con
mucho tráfico
• Escrituras en cada
request
• Replication lag
Monday, June 24, 13
• In-memory sessions
• Tiempo de acceso
constante y predecible
• Escala horizontalmente
Monday, June 24, 13
Monday, June 24, 13
Sesiones en Redis
• Sesiones distribuídas (ej. detrás de un
balanceador sin sticky sessions)
• Excepcional rendimiento de escritura/lectura
• Tiempo de acceso constante y predecible
• Escalable horizontalmente (client-side sharding)
Monday, June 24, 13
Session handlers
• A través de un session handler implementado
en PHP, conectando a través de un cliente
Redis
• A través de un session handler implementado
en una extensión de PHP (phpredis)
Monday, June 24, 13
Usando Predis
snc_redis:
clients:
session_cluster:
type: predis
alias: session
dsn:
- redis://sess000.example.net
- redis://sess001.example.net
- redis://sess002.example.net
session:
client: session_cluster
ttl: 1200
prefix: appsession
config.yml
Monday, June 24, 13
Usando phpredis
framework:
session:
# Default storage service
storage_id: "session.storage.native"
# No handler service, use default
handler_id: ~
# The name for the session cookie
name: "appsesid"
config.yml
Monday, June 24, 13
php.ini usando phpredis
session.save_handler = redis
session.save_path = "
tcp://s000.example.net:6379?weight=1,
tcp://s001.example.net:6379?weight=2,
tcp://s002.example.net:6379?weight=2
"
Monday, June 24, 13
redis 127.0.0.1:6379> MONITOR
OK
"GET" "appsession:9jmmp11dvh3b4f1bp9trfuqlj3"
"SETEX" "appsession:9jmmp11dvh3b4f1bp9trfuqlj3"
"1440" "_sf2_attributes|a:1:{s:5:"visit";i:1371678033;}
_sf2_flashes|a:0:{}_sf2_meta|a:3:{s:1:"u";i:
1371678033;s:1:"c";i:1371678023;s:1:"l";s:1:"0";}"
session
name
session id
(cookie)
ttl
(expire
time)
session
data
Monday, June 24, 13
Monolog logging
Monday, June 24, 13
Monolog logging
• Los mensajes de logs son almacenados en
una lista
• Ideal cuando se necesita un broker que
reciba los logs que serán posteriormente
enviados a un agregador (ej. logstash)
Monday, June 24, 13
Monolog config
snc_redis:
clients:
monolog:
type: predis
alias: monolog
dsn: redis://localhost/1
logging: false
monolog:
client: monolog
key: monolog
monolog:
handlers:
main:
type: service
id: monolog.handler.redis
level: debug
Monday, June 24, 13
Referencias
• http://blog.lusis.org/blog/2012/01/31/load-
balancing-logstash-with-redis/
Monday, June 24, 13
SwiftMailer Spooling
Monday, June 24, 13
SwiftMailer Spooling
• Los mensajes no se envian directamente, sino que
se mantienen en un “spool” y son enviados por un
proceso en background
• Usando redis como “spool”, los mensajes son
mantenidos en una lista hasta que son enviados
Monday, June 24, 13
Mailer spooling
snc_redis:
clients:
emails:
type: predis
alias: emails
dsn: redis://emails-spool-00.example.com
logging: false
swiftmailer:
client: emails
key: swiftmailer
config.yml
Monday, June 24, 13
Otros casos de uso en
Symfony2
Monday, June 24, 13
Router dinámicos
• Necesitamos convertir URLs amigables a rutas
internas de Symfony2:
Idioma Ruta interna Ruta “amigable”
es /sport/123 /futbol
en /sport/123 /football
Monday, June 24, 13
Router dinámicos
Idioma
Ruta
“amigable”
_controller
es /futbol
Bundle:SportController:sportPageAction,
array(‘sport’ => 123)
es /madrid
Bundle:CityController:cityPageAction
array(‘city’ => 456)
Monday, June 24, 13
Desventajas
• Difícil de cambiar la configuración de routing
una vez creadas
• Es requerido tener copia de la base de datos
de routings en los ambientes de desarrollo
para que la aplicación funcione
Monday, June 24, 13
Solución alternativa
• Crear un mapping entre rutas amigables y
rutas internas
• Subscribirse a KernelEvents::REQUEST y
antes que nada, cambiar pathInfo en el objeto
Request
Monday, June 24, 13
Flujo
Request
/futbol
Request
/sport/123
RouterMapperListener
Controller/Action
Routing System
Monday, June 24, 13
Monday, June 24, 13
Usando Redis hashes
/futbol /sport/123
/baloncesto /sport/456
/tenis /sport/789
routes:es
/sport/123 /futbol
/sport/456 /baloncesto
/sport/789 /tenis
alias:es
Monday, June 24, 13
Integración con el profiler
y web debug toolbar
Monday, June 24, 13
Integración en el profiler
Monday, June 24, 13
OTROSCASOSDEUSO
GENERALES
Monday, June 24, 13
Presencia de usuarios
(who is online?)
Monday, June 24, 13
¿Quién está online?
• Mantenemos un conjunto con los usuarios
que han estado online por cada minuto
• En cada request, agregamos al usuario al
conjunto de usuarios online del minuto
actual
• Obtenemos los usuarios que han estado
online de la unión de los 5 últimos
conjuntos
Monday, June 24, 13
Monday, June 24, 13
Amigos online
• Mantenemos un conjunto con los amigos
de cada usuario
• Obtenemos los amigos que están online, de
la intersección del conjunto de usuarios
online con el conjunto de amigos de un
usuario
Monday, June 24, 13
Usuarios online
Amigos
Amigos
Online
Monday, June 24, 13
class OnlineUsersManager
{
protected $redis;
public function __construct(Redis $redis)
{
$this->redis = $redis;
}
public function trackUser($userId)
{
$timestamp = time();
$minute = date('i', $timestamp);
$key = 'online_users:' . $minute;
// Add the user to the set of online users in the
current minute.
$this->redis->sadd($key, $userId);
// Expire in 10 minutes.
$this->redis->expire(60 * 10);
}Monday, June 24, 13
Leaderboards
• Caso de uso típico el cual es fácil de implementar
con Redis y díficil de implementar de forma
eficiente en otro sistema
• Los conjuntos ordenados son las estructuras de
datos perfectas para su implementación
Monday, June 24, 13
Monday, June 24, 13
class RankingManager
{
protected $redis;
public function __construct(Redis $redis)
{
$this->redis = $redis;
}
public function onCombatFinished(Combat $combat)
{
$winner = $combat->getAttacker();
$score = $combat->getScoreResult();
$this->redis->zincr('ranking', $score, $winner->getId());
}
public function getTopScores($limit)
{
return $this->redis->zrevrange('ranking', 0, $limit);
}
}
Monday, June 24, 13
Extra Tips
• Redis es single-threaded, todos los
comandos son atómicos
• Transacciones pueden usarse para ejecutar
múltiples comandos de forma atómica
• Lua scripts se ejecutan de forma atómica
también
•
Monday, June 24, 13
Performance Tips
• Usando client-side sharding puede escalarse
horizontalmente ganando en capacidad y
rendimiento
• Ejecutar múltiples comandos a través de
pipelines
Monday, June 24, 13
CONCLUSIONES
Monday, June 24, 13
NO usar Redis
• Cuando el conjunto de datos (dataset) no
cabe en memoria
• Datos de naturaleza relacional
• Cuando no se conoce de antemano como
van a consultarse los datos
Monday, June 24, 13
Cuándo usar Redis
• Redis para datos temporales, altamente dinámicos
y estructuras de datos complejas
• Datos de naturaleza no-relacional
• Ideal para aplicaciones que son write-heavy
• Datos que naturalmente se ajustan a una
estructura de Redis
Monday, June 24, 13
Inegrando Redis en un
stack PHP/Symfony2
• No necesariamente como la DB principal
• Resolviendo problemas que son difíciles de
resolver en un sistema relacional
• Beneficiandonos de las características de Redis de
forma incremental
• Usando la herramienta adecuada para cada tarea
Monday, June 24, 13
Monday, June 24, 13
Referencias
http://redis.io/commands
http://redis.io/documentation
Monday, June 24, 13
Muchas Gracias
https://joind.in/8844
@ronnylt
https://github.com/ronnylt
Monday, June 24, 13
We are hiring!
Monday, June 24, 13

More Related Content

What's hot

NoSQL Databases
NoSQL DatabasesNoSQL Databases
NoSQL DatabasesBADR
 
Big Data en el entorno Bancario
Big Data en el entorno BancarioBig Data en el entorno Bancario
Big Data en el entorno BancarioMartín Cabrera
 
Denodo Data Virtualization Platform Architecture: Performance (session 2 from...
Denodo Data Virtualization Platform Architecture: Performance (session 2 from...Denodo Data Virtualization Platform Architecture: Performance (session 2 from...
Denodo Data Virtualization Platform Architecture: Performance (session 2 from...Denodo
 
Data engineering in 10 years.pdf
Data engineering in 10 years.pdfData engineering in 10 years.pdf
Data engineering in 10 years.pdfLars Albertsson
 
Base de datos - Saturacion - Teoria
Base de datos - Saturacion - TeoriaBase de datos - Saturacion - Teoria
Base de datos - Saturacion - TeoriaGrupoTresPacEspe
 
01. Introducción a la Analítica de Datos.pptx
01. Introducción a la Analítica de Datos.pptx01. Introducción a la Analítica de Datos.pptx
01. Introducción a la Analítica de Datos.pptxJuanCarlosRomanPerez1
 
Database in Microservices - (2nd PostgreSQL Conference Nepal 2023)
Database in Microservices - (2nd PostgreSQL Conference Nepal 2023)Database in Microservices - (2nd PostgreSQL Conference Nepal 2023)
Database in Microservices - (2nd PostgreSQL Conference Nepal 2023)Sandip Basnet
 
How Apache Spark and Apache Hadoop are being used to keep banking regulators ...
How Apache Spark and Apache Hadoop are being used to keep banking regulators ...How Apache Spark and Apache Hadoop are being used to keep banking regulators ...
How Apache Spark and Apache Hadoop are being used to keep banking regulators ...DataWorks Summit
 
Evolution of Linux Containerization
Evolution of Linux Containerization Evolution of Linux Containerization
Evolution of Linux Containerization WSO2
 
ETL in the Cloud With Microsoft Azure
ETL in the Cloud With Microsoft AzureETL in the Cloud With Microsoft Azure
ETL in the Cloud With Microsoft AzureMark Kromer
 
Best Practices with PostgreSQL on Solaris
Best Practices with PostgreSQL on SolarisBest Practices with PostgreSQL on Solaris
Best Practices with PostgreSQL on SolarisJignesh Shah
 
Database performance tuning and query optimization
Database performance tuning and query optimizationDatabase performance tuning and query optimization
Database performance tuning and query optimizationUsman Tariq
 
Cassandra an overview
Cassandra an overviewCassandra an overview
Cassandra an overviewPritamKathar
 
NoSQL databases - An introduction
NoSQL databases - An introductionNoSQL databases - An introduction
NoSQL databases - An introductionPooyan Mehrparvar
 
An introduction to MongoDB
An introduction to MongoDBAn introduction to MongoDB
An introduction to MongoDBCésar Trigo
 
Machine Learning: Do Notebook ao modelo em produção
Machine Learning: Do Notebook ao modelo em produçãoMachine Learning: Do Notebook ao modelo em produção
Machine Learning: Do Notebook ao modelo em produçãoMarlesson Santana
 
Taking Splunk to the Next Level - Architecture
Taking Splunk to the Next Level - ArchitectureTaking Splunk to the Next Level - Architecture
Taking Splunk to the Next Level - ArchitectureSplunk
 

What's hot (20)

NoSQL Databases
NoSQL DatabasesNoSQL Databases
NoSQL Databases
 
Big Data en el entorno Bancario
Big Data en el entorno BancarioBig Data en el entorno Bancario
Big Data en el entorno Bancario
 
Denodo Data Virtualization Platform Architecture: Performance (session 2 from...
Denodo Data Virtualization Platform Architecture: Performance (session 2 from...Denodo Data Virtualization Platform Architecture: Performance (session 2 from...
Denodo Data Virtualization Platform Architecture: Performance (session 2 from...
 
Data engineering in 10 years.pdf
Data engineering in 10 years.pdfData engineering in 10 years.pdf
Data engineering in 10 years.pdf
 
Base de datos - Saturacion - Teoria
Base de datos - Saturacion - TeoriaBase de datos - Saturacion - Teoria
Base de datos - Saturacion - Teoria
 
Mineria de datos
Mineria de datosMineria de datos
Mineria de datos
 
01. Introducción a la Analítica de Datos.pptx
01. Introducción a la Analítica de Datos.pptx01. Introducción a la Analítica de Datos.pptx
01. Introducción a la Analítica de Datos.pptx
 
Informatica slides
Informatica slidesInformatica slides
Informatica slides
 
Database in Microservices - (2nd PostgreSQL Conference Nepal 2023)
Database in Microservices - (2nd PostgreSQL Conference Nepal 2023)Database in Microservices - (2nd PostgreSQL Conference Nepal 2023)
Database in Microservices - (2nd PostgreSQL Conference Nepal 2023)
 
How Apache Spark and Apache Hadoop are being used to keep banking regulators ...
How Apache Spark and Apache Hadoop are being used to keep banking regulators ...How Apache Spark and Apache Hadoop are being used to keep banking regulators ...
How Apache Spark and Apache Hadoop are being used to keep banking regulators ...
 
Evolution of Linux Containerization
Evolution of Linux Containerization Evolution of Linux Containerization
Evolution of Linux Containerization
 
ETL in the Cloud With Microsoft Azure
ETL in the Cloud With Microsoft AzureETL in the Cloud With Microsoft Azure
ETL in the Cloud With Microsoft Azure
 
Best Practices with PostgreSQL on Solaris
Best Practices with PostgreSQL on SolarisBest Practices with PostgreSQL on Solaris
Best Practices with PostgreSQL on Solaris
 
Database performance tuning and query optimization
Database performance tuning and query optimizationDatabase performance tuning and query optimization
Database performance tuning and query optimization
 
chapter7.ppt
chapter7.pptchapter7.ppt
chapter7.ppt
 
Cassandra an overview
Cassandra an overviewCassandra an overview
Cassandra an overview
 
NoSQL databases - An introduction
NoSQL databases - An introductionNoSQL databases - An introduction
NoSQL databases - An introduction
 
An introduction to MongoDB
An introduction to MongoDBAn introduction to MongoDB
An introduction to MongoDB
 
Machine Learning: Do Notebook ao modelo em produção
Machine Learning: Do Notebook ao modelo em produçãoMachine Learning: Do Notebook ao modelo em produção
Machine Learning: Do Notebook ao modelo em produção
 
Taking Splunk to the Next Level - Architecture
Taking Splunk to the Next Level - ArchitectureTaking Splunk to the Next Level - Architecture
Taking Splunk to the Next Level - Architecture
 

Viewers also liked

Fluentd and PHP
Fluentd and PHPFluentd and PHP
Fluentd and PHPchobi e
 
From Zero to Hero - Centralized Logging with Logstash & Elasticsearch
From Zero to Hero - Centralized Logging with Logstash & ElasticsearchFrom Zero to Hero - Centralized Logging with Logstash & Elasticsearch
From Zero to Hero - Centralized Logging with Logstash & ElasticsearchSematext Group, Inc.
 
Application Logging With The ELK Stack
Application Logging With The ELK StackApplication Logging With The ELK Stack
Application Logging With The ELK Stackbenwaine
 
Fluentd and docker monitoring
Fluentd and docker monitoringFluentd and docker monitoring
Fluentd and docker monitoringVinay Krishna
 
Application Logging With Logstash
Application Logging With LogstashApplication Logging With Logstash
Application Logging With Logstashbenwaine
 
Logging with Elasticsearch, Logstash & Kibana
Logging with Elasticsearch, Logstash & KibanaLogging with Elasticsearch, Logstash & Kibana
Logging with Elasticsearch, Logstash & KibanaAmazee Labs
 

Viewers also liked (7)

Fluentd and PHP
Fluentd and PHPFluentd and PHP
Fluentd and PHP
 
From Zero to Hero - Centralized Logging with Logstash & Elasticsearch
From Zero to Hero - Centralized Logging with Logstash & ElasticsearchFrom Zero to Hero - Centralized Logging with Logstash & Elasticsearch
From Zero to Hero - Centralized Logging with Logstash & Elasticsearch
 
Application Logging With The ELK Stack
Application Logging With The ELK StackApplication Logging With The ELK Stack
Application Logging With The ELK Stack
 
Fluentd and docker monitoring
Fluentd and docker monitoringFluentd and docker monitoring
Fluentd and docker monitoring
 
Fluentd vs. Logstash for OpenStack Log Management
Fluentd vs. Logstash for OpenStack Log ManagementFluentd vs. Logstash for OpenStack Log Management
Fluentd vs. Logstash for OpenStack Log Management
 
Application Logging With Logstash
Application Logging With LogstashApplication Logging With Logstash
Application Logging With Logstash
 
Logging with Elasticsearch, Logstash & Kibana
Logging with Elasticsearch, Logstash & KibanaLogging with Elasticsearch, Logstash & Kibana
Logging with Elasticsearch, Logstash & Kibana
 

Similar to Integrando Redis en aplicaciones Symfony2

Taller Redis
Taller RedisTaller Redis
Taller Redisbetabeers
 
Clase 2 - Arquitectura de Postgres
Clase 2 - Arquitectura de PostgresClase 2 - Arquitectura de Postgres
Clase 2 - Arquitectura de PostgresEddie Malca
 
Aplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con RedisAplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con RedisAlberto Gimeno
 
deSymfony 2013 - Creando aplicaciones web desde otro ángulo con Symfony y A...
deSymfony 2013 -  Creando aplicaciones web desde otro ángulo con Symfony y A...deSymfony 2013 -  Creando aplicaciones web desde otro ángulo con Symfony y A...
deSymfony 2013 - Creando aplicaciones web desde otro ángulo con Symfony y A...Pablo Godel
 
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
 
Unidad 1 - Introducción a los Sistemas de Gestión de Bases de Datos.pdf
Unidad 1 - Introducción a los Sistemas de Gestión de Bases de Datos.pdfUnidad 1 - Introducción a los Sistemas de Gestión de Bases de Datos.pdf
Unidad 1 - Introducción a los Sistemas de Gestión de Bases de Datos.pdfDanielMarquez902683
 
Buenas prácticas que debes seguir en la administración de tu SQL Server
Buenas prácticas que debes seguir en la administración de tu SQL ServerBuenas prácticas que debes seguir en la administración de tu SQL Server
Buenas prácticas que debes seguir en la administración de tu SQL ServerSolidQ
 
Despliegue de aplicaciones PHP
Despliegue de aplicaciones PHPDespliegue de aplicaciones PHP
Despliegue de aplicaciones PHPAlicantePHP
 
Base de datos
Base de datosBase de datos
Base de datosAz
 
Desarrollo de Almacenes de Datos con Sistemas Gestores de Bases de Datos NOSQL
Desarrollo de Almacenes de Datos con Sistemas Gestores de Bases de Datos NOSQLDesarrollo de Almacenes de Datos con Sistemas Gestores de Bases de Datos NOSQL
Desarrollo de Almacenes de Datos con Sistemas Gestores de Bases de Datos NOSQLRoanny Lamas
 
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...Socialmetrix
 
Redis: servidor de estructuras de datos
Redis: servidor de estructuras de datosRedis: servidor de estructuras de datos
Redis: servidor de estructuras de datosAntonio Ognio
 
Integración de Oracle Data Integrator con Oracle GoldenGate 12c
Integración de Oracle Data Integrator  con Oracle GoldenGate 12cIntegración de Oracle Data Integrator  con Oracle GoldenGate 12c
Integración de Oracle Data Integrator con Oracle GoldenGate 12cEdelweiss Kammermann
 
Introducción mongodb y desarrollo
Introducción mongodb y desarrolloIntroducción mongodb y desarrollo
Introducción mongodb y desarrolloJuan Ladetto
 

Similar to Integrando Redis en aplicaciones Symfony2 (20)

Taller Redis
Taller RedisTaller Redis
Taller Redis
 
Clase 2 - Arquitectura de Postgres
Clase 2 - Arquitectura de PostgresClase 2 - Arquitectura de Postgres
Clase 2 - Arquitectura de Postgres
 
introduccion bases de datos
introduccion bases de datosintroduccion bases de datos
introduccion bases de datos
 
Code Igniter
Code IgniterCode Igniter
Code Igniter
 
Aplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con RedisAplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con Redis
 
deSymfony 2013 - Creando aplicaciones web desde otro ángulo con Symfony y A...
deSymfony 2013 -  Creando aplicaciones web desde otro ángulo con Symfony y A...deSymfony 2013 -  Creando aplicaciones web desde otro ángulo con Symfony y A...
deSymfony 2013 - Creando aplicaciones web desde otro ángulo con Symfony y A...
 
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...
 
Unidad 1 - Introducción a los Sistemas de Gestión de Bases de Datos.pdf
Unidad 1 - Introducción a los Sistemas de Gestión de Bases de Datos.pdfUnidad 1 - Introducción a los Sistemas de Gestión de Bases de Datos.pdf
Unidad 1 - Introducción a los Sistemas de Gestión de Bases de Datos.pdf
 
Buenas prácticas que debes seguir en la administración de tu SQL Server
Buenas prácticas que debes seguir en la administración de tu SQL ServerBuenas prácticas que debes seguir en la administración de tu SQL Server
Buenas prácticas que debes seguir en la administración de tu SQL Server
 
Despliegue de aplicaciones PHP
Despliegue de aplicaciones PHPDespliegue de aplicaciones PHP
Despliegue de aplicaciones PHP
 
Tema LOS SGBD O DBMS.pptx
Tema LOS SGBD O DBMS.pptxTema LOS SGBD O DBMS.pptx
Tema LOS SGBD O DBMS.pptx
 
Base de datos
Base de datosBase de datos
Base de datos
 
Alto rendimiento en la web
Alto rendimiento en la webAlto rendimiento en la web
Alto rendimiento en la web
 
Desarrollo de Almacenes de Datos con Sistemas Gestores de Bases de Datos NOSQL
Desarrollo de Almacenes de Datos con Sistemas Gestores de Bases de Datos NOSQLDesarrollo de Almacenes de Datos con Sistemas Gestores de Bases de Datos NOSQL
Desarrollo de Almacenes de Datos con Sistemas Gestores de Bases de Datos NOSQL
 
Doctrine
DoctrineDoctrine
Doctrine
 
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...
 
Redis: servidor de estructuras de datos
Redis: servidor de estructuras de datosRedis: servidor de estructuras de datos
Redis: servidor de estructuras de datos
 
Base de datos sql
Base de datos sqlBase de datos sql
Base de datos sql
 
Integración de Oracle Data Integrator con Oracle GoldenGate 12c
Integración de Oracle Data Integrator  con Oracle GoldenGate 12cIntegración de Oracle Data Integrator  con Oracle GoldenGate 12c
Integración de Oracle Data Integrator con Oracle GoldenGate 12c
 
Introducción mongodb y desarrollo
Introducción mongodb y desarrolloIntroducción mongodb y desarrollo
Introducción mongodb y desarrollo
 

Recently uploaded

Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdfsharitcalderon04
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Marketing BRANDING
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 

Recently uploaded (20)

Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdf
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 

Integrando Redis en aplicaciones Symfony2