Acelerando sitios webs con
       Memcached


               César D. Rodas
             crodas@member.fsf.org



        ...
Quién les habla?
Participante Google Summer of Code 2008
  • Plug-in para WordPress
Quién les habla?
Participante Google Summer of Code 2008
  • Plug-in para WordPress

Ganador del PHP Innovation award 2007
Quién les habla?
Participante Google Summer of Code 2008
  • Plug-in para WordPress

Ganador del PHP Innovation award 2007...
Quién les habla?
Participante Google Summer of Code 2008
  • Plug-in para WordPress

Ganador del PHP Innovation award 2007...
Quién les habla?
       Participante Google Summer of Code 2008
             • Plug-in para WordPress

       Ganador del ...
Qué es Cache?
Datos duplicados, almacenados en un médio más rápido.
Qué es Cache?
Datos duplicados, almacenados en un médio más rápido.
Mejor solución para el cuello de botella.
Qué es Cache?
Datos duplicados, almacenados en un médio más rápido.
Mejor solución para el cuello de botella.
Cuello de bo...
Qué es Cache?
Datos duplicados, almacenados en un médio más rápido.
Mejor solución para el cuello de botella.
Cuello de bo...
Qué es Cache?
Datos duplicados, almacenados en un médio más rápido.
Mejor solución para el cuello de botella.
Cuello de bo...
Qué es Cache?
Datos duplicados, almacenados en un médio más rápido.
Mejor solución para el cuello de botella.
Cuello de bo...
Qué es Cache?
Datos duplicados, almacenados en un médio más rápido.
Mejor solución para el cuello de botella.
Cuello de bo...
Qué es Cache?
Datos duplicados, almacenados en un médio más rápido.
Mejor solución para el cuello de botella.
Cuello de bo...
Qué es Cache?
Datos duplicados, almacenados en un médio más rápido.
Mejor solución para el cuello de botella.
Cuello de bo...
Qué es Cache?
       Datos duplicados, almacenados en un médio más rápido.
       Mejor solución para el cuello de botella...
Que no es Memcached!
Base de datos.
Que no es Memcached!
Base de datos.
El único médio de cacheo.
Que no es Memcached!
Base de datos.
El único médio de cacheo.
La mejor alternativa para sitios pequeños-medianos.
Que no es Memcached!
Base de datos.
El único médio de cacheo.
La mejor alternativa para sitios pequeños-medianos.
Solución...
Que no es Memcached!
Base de datos.
El único médio de cacheo.
La mejor alternativa para sitios pequeños-medianos.
Solución...
Que no es Memcached!
Base de datos.
El único médio de cacheo.
La mejor alternativa para sitios pequeños-medianos.
Solución...
Que no es Memcached!
       Base de datos.
       El único médio de cacheo.
       La mejor alternativa para sitios pequeñ...
Que es Memcached!
Cache distribuido en memoria RAM.
Que es Memcached!
Cache distribuido en memoria RAM.
Creado por y para LiveJournal.
Que es Memcached!
Cache distribuido en memoria RAM.
Creado por y para LiveJournal.
Escalable.
Que es Memcached!
       Cache distribuido en memoria RAM.
       Creado por y para LiveJournal.
       Escalable.
       ...
El servidor
Óptima administración de memoria (Slab Allocation).
El servidor
Óptima administración de memoria (Slab Allocation).
Utiliza libevent.
El servidor
Óptima administración de memoria (Slab Allocation).
Utiliza libevent.
Protocolo simple y sencillo.
  • Nada de...
El servidor
Óptima administración de memoria (Slab Allocation).
Utiliza libevent.
Protocolo simple y sencillo.
  • Nada de...
El servidor
Óptima administración de memoria (Slab Allocation).
Utiliza libevent.
Protocolo simple y sencillo.
  • Nada de...
El servidor
       Óptima administración de memoria (Slab Allocation).
       Utiliza libevent.
       Protocolo simple y ...
El cliente
Elige a que servidor conectarse.
El cliente
Elige a que servidor conectarse.
Serializa los objetos del lenguaje.
El cliente
       Elige a que servidor conectarse.
       Serializa los objetos del lenguaje.
       Comprimir datos.




...
8
Otras utilidades de Memcached
       Compartir información entre servidores.
             • Sesiones.
             • Infor...
Monitoreando Memcached
       Cacti
             • http://dealnews.com/developers/cacti/memcached.html

       Ganglia
   ...
11
Alternativas
MySQL query cache.
  • Útil si la tabla no varía frecuentemente.
Alternativas
MySQL query cache.
  • Útil si la tabla no varía frecuentemente.

Bases de datos replicadas.
  • Se pueden de...
Alternativas
MySQL query cache.
  • Útil si la tabla no varía frecuentemente.

Bases de datos replicadas.
  • Se pueden de...
Alternativas
MySQL query cache.
  • Útil si la tabla no varía frecuentemente.

Bases de datos replicadas.
  • Se pueden de...
Alternativas
MySQL query cache.
  • Útil si la tabla no varía frecuentemente.

Bases de datos replicadas.
  • Se pueden de...
Alternativas
MySQL query cache.
  • Útil si la tabla no varía frecuentemente.

Bases de datos replicadas.
  • Se pueden de...
Alternativas
MySQL query cache.
  • Útil si la tabla no varía frecuentemente.

Bases de datos replicadas.
  • Se pueden de...
Alternativas
       MySQL query cache.
             • Útil si la tabla no varía frecuentemente.

       Bases de datos rep...
Alternativas
File cache en quot;disco RAMquot;.
Alternativas
File cache en quot;disco RAMquot;.
  • Alternativa muy rápida y costosa.
Alternativas
File cache en quot;disco RAMquot;.
  • Alternativa muy rápida y costosa.
  • GNU/Linux:
    /sbin/mke2fs -q -...
Alternativas
       File cache en quot;disco RAMquot;.
             • Alternativa muy rápida y costosa.
             • GNU...
Otros tips utiles
Eliminar los whitespaces.
  • Si quot;ahorramosquot; 30 bytes por página, en 10,000,000 visitas serían ∼...
Otros tips utiles
Eliminar los whitespaces.
  • Si quot;ahorramosquot; 30 bytes por página, en 10,000,000 visitas serían ∼...
Otros tips utiles
Eliminar los whitespaces.
  • Si quot;ahorramosquot; 30 bytes por página, en 10,000,000 visitas serían ∼...
Otros tips utiles
Eliminar los whitespaces.
  • Si quot;ahorramosquot; 30 bytes por página, en 10,000,000 visitas serían ∼...
Otros tips utiles
       Eliminar los whitespaces.
             • Si quot;ahorramosquot; 30 bytes por página, en 10,000,00...
Talk is cheap
show me the code!




                    15
PHPCached vs. PHP Memcached
PHPCached es un poco más lento.
PHPCached vs. PHP Memcached
PHPCached es un poco más lento.
  • Si pensamos así deberíamos programar en C.
PHPCached vs. PHP Memcached
PHPCached es un poco más lento.
  • Si pensamos así deberíamos programar en C.
  • Se puede so...
PHPCached vs. PHP Memcached
PHPCached es un poco más lento.
  • Si pensamos así deberíamos programar en C.
  • Se puede so...
PHPCached vs. PHP Memcached
PHPCached es un poco más lento.
  • Si pensamos así deberíamos programar en C.
  • Se puede so...
PHPCached vs. PHP Memcached
PHPCached es un poco más lento.
  • Si pensamos así deberíamos programar en C.
  • Se puede so...
API sencilla, similar a DBA
 <?php
/* Objeto phpcached */
$cache = new phpcached;
API sencilla, similar a DBA
 <?php
/* Objeto phpcached */
$cache = new phpcached;
/* Agregar la lista de servidores */
$ca...
API sencilla, similar a DBA
 <?php
/* Objeto phpcached */
$cache = new phpcached;
/* Agregar la lista de servidores */
$ca...
Y si usas PHP5
 <?php
/* definimos la lista de servidores */
define('PHPCACHED SERVER1','10.1.1.1:3128');
define('PHPCACHE...
Jugando con PHPCached
<?php
 $cache = new phpcached;
 $cache->addServer(quot;10.1.1.1quot;,3128);
$cache->addServer(quot;1...
Jugando con PHPCached
<?php
 $cache = new phpcached;
 $cache->addServer(quot;10.1.1.1quot;,3128);
$cache->addServer(quot;1...
Jugando con PHPCached
<?php
 $cache = new phpcached;
 $cache->addServer(quot;10.1.1.1quot;,3128);
$cache->addServer(quot;1...
Alternativas para sitios pequeños
 <?php
/* Objeto phpcached */
$cache = new phpcached;
Alternativas para sitios pequeños
 <?php
/* Objeto phpcached */
$cache = new phpcached;
/* Agregar directorio de destino *...
Alternativas para sitios pequeños
 <?php
/* Objeto phpcached */
$cache = new phpcached;
/* Agregar directorio de destino *...
Muchas gracias! Preguntas?
         Cesar Rodas.
         crodas@member.fsf.org
          http://cesarodas.com/


        ...
Resources
Memcached
  • http://www.danga.com/memcached
  • http://tangent.org/552/libmemcached.html

Mamcached Mail list.
...
Powered by...




Cesar D. Rodas - http://cesar.la/ - L EX
                                    AT                     23
Upcoming SlideShare
Loading in...5
×

Optimizando Sitios webs con Memcached

1,390

Published on

Esta presentacion habla sobre Memcached y alternativas para sitios pequenhos.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,390
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
21
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Optimizando Sitios webs con Memcached

  1. 1. Acelerando sitios webs con Memcached César D. Rodas crodas@member.fsf.org http://cesar.la/talks/ Latinoware 2008, Foz do Iguaçu, Brasil 1
  2. 2. Quién les habla? Participante Google Summer of Code 2008 • Plug-in para WordPress
  3. 3. Quién les habla? Participante Google Summer of Code 2008 • Plug-in para WordPress Ganador del PHP Innovation award 2007
  4. 4. Quién les habla? Participante Google Summer of Code 2008 • Plug-in para WordPress Ganador del PHP Innovation award 2007 Centro Nacional de Computacion
  5. 5. Quién les habla? Participante Google Summer of Code 2008 • Plug-in para WordPress Ganador del PHP Innovation award 2007 Centro Nacional de Computacion www.CesaRodas.com
  6. 6. Quién les habla? Participante Google Summer of Code 2008 • Plug-in para WordPress Ganador del PHP Innovation award 2007 Centro Nacional de Computacion www.CesaRodas.com Cesar D. Rodas - http://cesar.la/ - L EX AT 2
  7. 7. Qué es Cache? Datos duplicados, almacenados en un médio más rápido.
  8. 8. Qué es Cache? Datos duplicados, almacenados en un médio más rápido. Mejor solución para el cuello de botella.
  9. 9. Qué es Cache? Datos duplicados, almacenados en un médio más rápido. Mejor solución para el cuello de botella. Cuello de botella de la web (la base de datos).
  10. 10. Qué es Cache? Datos duplicados, almacenados en un médio más rápido. Mejor solución para el cuello de botella. Cuello de botella de la web (la base de datos). • Autenticación.
  11. 11. Qué es Cache? Datos duplicados, almacenados en un médio más rápido. Mejor solución para el cuello de botella. Cuello de botella de la web (la base de datos). • Autenticación. • SQL.
  12. 12. Qué es Cache? Datos duplicados, almacenados en un médio más rápido. Mejor solución para el cuello de botella. Cuello de botella de la web (la base de datos). • Autenticación. • SQL. Compilación.
  13. 13. Qué es Cache? Datos duplicados, almacenados en un médio más rápido. Mejor solución para el cuello de botella. Cuello de botella de la web (la base de datos). • Autenticación. • SQL. Compilación. Ejecución del código.
  14. 14. Qué es Cache? Datos duplicados, almacenados en un médio más rápido. Mejor solución para el cuello de botella. Cuello de botella de la web (la base de datos). • Autenticación. • SQL. Compilación. Ejecución del código. Bloqueo de IO.
  15. 15. Qué es Cache? Datos duplicados, almacenados en un médio más rápido. Mejor solución para el cuello de botella. Cuello de botella de la web (la base de datos). • Autenticación. • SQL. Compilación. Ejecución del código. Bloqueo de IO. Acceso al disco.
  16. 16. Qué es Cache? Datos duplicados, almacenados en un médio más rápido. Mejor solución para el cuello de botella. Cuello de botella de la web (la base de datos). • Autenticación. • SQL. Compilación. Ejecución del código. Bloqueo de IO. Acceso al disco. Cesar D. Rodas - http://cesar.la/ - L EX AT 3
  17. 17. Que no es Memcached! Base de datos.
  18. 18. Que no es Memcached! Base de datos. El único médio de cacheo.
  19. 19. Que no es Memcached! Base de datos. El único médio de cacheo. La mejor alternativa para sitios pequeños-medianos.
  20. 20. Que no es Memcached! Base de datos. El único médio de cacheo. La mejor alternativa para sitios pequeños-medianos. Solución económica.
  21. 21. Que no es Memcached! Base de datos. El único médio de cacheo. La mejor alternativa para sitios pequeños-medianos. Solución económica. Complicada de implementar.
  22. 22. Que no es Memcached! Base de datos. El único médio de cacheo. La mejor alternativa para sitios pequeños-medianos. Solución económica. Complicada de implementar. Seguro.
  23. 23. Que no es Memcached! Base de datos. El único médio de cacheo. La mejor alternativa para sitios pequeños-medianos. Solución económica. Complicada de implementar. Seguro. Cesar D. Rodas - http://cesar.la/ - L EX AT 4
  24. 24. Que es Memcached! Cache distribuido en memoria RAM.
  25. 25. Que es Memcached! Cache distribuido en memoria RAM. Creado por y para LiveJournal.
  26. 26. Que es Memcached! Cache distribuido en memoria RAM. Creado por y para LiveJournal. Escalable.
  27. 27. Que es Memcached! Cache distribuido en memoria RAM. Creado por y para LiveJournal. Escalable. Utilizado por los grandes. • LiveJournal. • Wikipedia. • Slashdot. • SourceForge. • ... Cesar D. Rodas - http://cesar.la/ - L EX AT 5
  28. 28. El servidor Óptima administración de memoria (Slab Allocation).
  29. 29. El servidor Óptima administración de memoria (Slab Allocation). Utiliza libevent.
  30. 30. El servidor Óptima administración de memoria (Slab Allocation). Utiliza libevent. Protocolo simple y sencillo. • Nada de XML ni nada complicado de parsear.
  31. 31. El servidor Óptima administración de memoria (Slab Allocation). Utiliza libevent. Protocolo simple y sencillo. • Nada de XML ni nada complicado de parsear. No existen bloqueos de IO.
  32. 32. El servidor Óptima administración de memoria (Slab Allocation). Utiliza libevent. Protocolo simple y sencillo. • Nada de XML ni nada complicado de parsear. No existen bloqueos de IO. Cada servidor es totalmente independiente. • No se comparten datos. • No hay un punto centralizado. • Sencillo, efectivo y rápido.
  33. 33. El servidor Óptima administración de memoria (Slab Allocation). Utiliza libevent. Protocolo simple y sencillo. • Nada de XML ni nada complicado de parsear. No existen bloqueos de IO. Cada servidor es totalmente independiente. • No se comparten datos. • No hay un punto centralizado. • Sencillo, efectivo y rápido. Cuenta con hash interno. Cesar D. Rodas - http://cesar.la/ - L EX AT 6
  34. 34. El cliente Elige a que servidor conectarse.
  35. 35. El cliente Elige a que servidor conectarse. Serializa los objetos del lenguaje.
  36. 36. El cliente Elige a que servidor conectarse. Serializa los objetos del lenguaje. Comprimir datos. Cesar D. Rodas - http://cesar.la/ - L EX AT 7
  37. 37. 8
  38. 38. Otras utilidades de Memcached Compartir información entre servidores. • Sesiones. • Informacion utilizada frecuentemente. • .. Cesar D. Rodas - http://cesar.la/ - L EX AT 9
  39. 39. Monitoreando Memcached Cacti • http://dealnews.com/developers/cacti/memcached.html Ganglia • http://ganglia.wiki.sourceforge.net/ ... Cesar D. Rodas - http://cesar.la/ - L EX AT 10
  40. 40. 11
  41. 41. Alternativas MySQL query cache. • Útil si la tabla no varía frecuentemente.
  42. 42. Alternativas MySQL query cache. • Útil si la tabla no varía frecuentemente. Bases de datos replicadas. • Se pueden desentralizar las lecturas pero no las escrituras.
  43. 43. Alternativas MySQL query cache. • Útil si la tabla no varía frecuentemente. Bases de datos replicadas. • Se pueden desentralizar las lecturas pero no las escrituras. • Las escrituras bloquean las lecturas.
  44. 44. Alternativas MySQL query cache. • Útil si la tabla no varía frecuentemente. Bases de datos replicadas. • Se pueden desentralizar las lecturas pero no las escrituras. • Las escrituras bloquean las lecturas. Memoria Compartida. • El cache no puede ser distribuido.
  45. 45. Alternativas MySQL query cache. • Útil si la tabla no varía frecuentemente. Bases de datos replicadas. • Se pueden desentralizar las lecturas pero no las escrituras. • Las escrituras bloquean las lecturas. Memoria Compartida. • El cache no puede ser distribuido. • Muy costoso gracias a los bloqueos.
  46. 46. Alternativas MySQL query cache. • Útil si la tabla no varía frecuentemente. Bases de datos replicadas. • Se pueden desentralizar las lecturas pero no las escrituras. • Las escrituras bloquean las lecturas. Memoria Compartida. • El cache no puede ser distribuido. • Muy costoso gracias a los bloqueos. File cache. • El cache no puede ser distribuido.
  47. 47. Alternativas MySQL query cache. • Útil si la tabla no varía frecuentemente. Bases de datos replicadas. • Se pueden desentralizar las lecturas pero no las escrituras. • Las escrituras bloquean las lecturas. Memoria Compartida. • El cache no puede ser distribuido. • Muy costoso gracias a los bloqueos. File cache. • El cache no puede ser distribuido. • Mejor cache para sitios pequeños (< 70000 hits por dia).
  48. 48. Alternativas MySQL query cache. • Útil si la tabla no varía frecuentemente. Bases de datos replicadas. • Se pueden desentralizar las lecturas pero no las escrituras. • Las escrituras bloquean las lecturas. Memoria Compartida. • El cache no puede ser distribuido. • Muy costoso gracias a los bloqueos. File cache. • El cache no puede ser distribuido. • Mejor cache para sitios pequeños (< 70000 hits por dia). Cesar D. Rodas - http://cesar.la/ - L EX AT 12
  49. 49. Alternativas File cache en quot;disco RAMquot;.
  50. 50. Alternativas File cache en quot;disco RAMquot;. • Alternativa muy rápida y costosa.
  51. 51. Alternativas File cache en quot;disco RAMquot;. • Alternativa muy rápida y costosa. • GNU/Linux: /sbin/mke2fs -q -m 0 /dev/ram0 /bin/mount /dev/ram0 /mnt/cache /bin/chown httpd:root /mnt/cache /bin/chmod 0750 /mnt/cache
  52. 52. Alternativas File cache en quot;disco RAMquot;. • Alternativa muy rápida y costosa. • GNU/Linux: /sbin/mke2fs -q -m 0 /dev/ram0 /bin/mount /dev/ram0 /mnt/cache /bin/chown httpd:root /mnt/cache /bin/chmod 0750 /mnt/cache • FreeBSD (y posiblemente *BSD): /sbin/mdconfig -a -t malloc -s 256M -u 10 /sbin/newfs -U /dev/md10 /sbin/mount /dev/md10 /mnt/cache Cesar D. Rodas - http://cesar.la/ - L EX AT 13
  53. 53. Otros tips utiles Eliminar los whitespaces. • Si quot;ahorramosquot; 30 bytes por página, en 10,000,000 visitas serían ∼286MB.
  54. 54. Otros tips utiles Eliminar los whitespaces. • Si quot;ahorramosquot; 30 bytes por página, en 10,000,000 visitas serían ∼286MB. Paginas comprimidas. • On the fly ( ob start(quot;ob gzhandlerquot;) ) • Cacheado. • mod gzip. • ...
  55. 55. Otros tips utiles Eliminar los whitespaces. • Si quot;ahorramosquot; 30 bytes por página, en 10,000,000 visitas serían ∼286MB. Paginas comprimidas. • On the fly ( ob start(quot;ob gzhandlerquot;) ) • Cacheado. • mod gzip. • ... Contenido estático... al servidor multi-threded.
  56. 56. Otros tips utiles Eliminar los whitespaces. • Si quot;ahorramosquot; 30 bytes por página, en 10,000,000 visitas serían ∼286MB. Paginas comprimidas. • On the fly ( ob start(quot;ob gzhandlerquot;) ) • Cacheado. • mod gzip. • ... Contenido estático... al servidor multi-threded. APC.
  57. 57. Otros tips utiles Eliminar los whitespaces. • Si quot;ahorramosquot; 30 bytes por página, en 10,000,000 visitas serían ∼286MB. Paginas comprimidas. • On the fly ( ob start(quot;ob gzhandlerquot;) ) • Cacheado. • mod gzip. • ... Contenido estático... al servidor multi-threded. APC. Squid Reverse proxy. Cesar D. Rodas - http://cesar.la/ - L EX AT 14
  58. 58. Talk is cheap show me the code! 15
  59. 59. PHPCached vs. PHP Memcached PHPCached es un poco más lento.
  60. 60. PHPCached vs. PHP Memcached PHPCached es un poco más lento. • Si pensamos así deberíamos programar en C.
  61. 61. PHPCached vs. PHP Memcached PHPCached es un poco más lento. • Si pensamos así deberíamos programar en C. • Se puede solucionar con APC.
  62. 62. PHPCached vs. PHP Memcached PHPCached es un poco más lento. • Si pensamos así deberíamos programar en C. • Se puede solucionar con APC. PHPCached puede ser modificado fácilmente.
  63. 63. PHPCached vs. PHP Memcached PHPCached es un poco más lento. • Si pensamos así deberíamos programar en C. • Se puede solucionar con APC. PHPCached puede ser modificado fácilmente. En PHPCached se puede registrar un quot;callbackquot; para el balanceo.
  64. 64. PHPCached vs. PHP Memcached PHPCached es un poco más lento. • Si pensamos así deberíamos programar en C. • Se puede solucionar con APC. PHPCached puede ser modificado fácilmente. En PHPCached se puede registrar un quot;callbackquot; para el balanceo. PHPCached tiene cacheo en archivos con la misma API. • Para sitios pequeños-medianos. • Ayuda a la transición (del file-based a memcached). 16
  65. 65. API sencilla, similar a DBA <?php /* Objeto phpcached */ $cache = new phpcached;
  66. 66. API sencilla, similar a DBA <?php /* Objeto phpcached */ $cache = new phpcached; /* Agregar la lista de servidores */ $cache->addServer(quot;10.1.1.1quot;,3128); $cache->addServer(quot;10.1.1.1quot;,3129); $cache->addServer(quot;10.1.1.2quot;,3128);
  67. 67. API sencilla, similar a DBA <?php /* Objeto phpcached */ $cache = new phpcached; /* Agregar la lista de servidores */ $cache->addServer(quot;10.1.1.1quot;,3128); $cache->addServer(quot;10.1.1.1quot;,3129); $cache->addServer(quot;10.1.1.2quot;,3128); /* ** A utilizar Phpcached ** La funcion quot;do long process()quot; sólo será ** ejecutada cada 10 minutos */ if (($value=$cache->get(quot;keyquot;)) === false) { $value = do long process(); $cache->set(quot;keyquot;,$value,600); } return $value; ?> Cesar D. Rodas - http://cesar.la/ - L EX AT 17
  68. 68. Y si usas PHP5 <?php /* definimos la lista de servidores */ define('PHPCACHED SERVER1','10.1.1.1:3128'); define('PHPCACHED SERVER2','10.1.1.1:3129'); define('PHPCACHED SERVER3','10.1.1.2:3128'); $cache = new arraycached(600); if (!isset($cache[$key])) { $cache[$key] = do long process(); } return $cache[$key]; ?> Cesar D. Rodas - http://cesar.la/ - L EX AT 18
  69. 69. Jugando con PHPCached <?php $cache = new phpcached; $cache->addServer(quot;10.1.1.1quot;,3128); $cache->addServer(quot;10.1.1.1quot;,3129); $cache->addServer(quot;10.1.1.2quot;,3128);
  70. 70. Jugando con PHPCached <?php $cache = new phpcached; $cache->addServer(quot;10.1.1.1quot;,3128); $cache->addServer(quot;10.1.1.1quot;,3129); $cache->addServer(quot;10.1.1.2quot;,3128); /* ** Definimos una funcion PHP que ** selecionara que Memcached utilizar ** basado en la longitud del Key. */ function balancer($iServer,$zKey) { return strlen($zKey)%$iServer; }
  71. 71. Jugando con PHPCached <?php $cache = new phpcached; $cache->addServer(quot;10.1.1.1quot;,3128); $cache->addServer(quot;10.1.1.1quot;,3129); $cache->addServer(quot;10.1.1.2quot;,3128); /* ** Definimos una funcion PHP que ** selecionara que Memcached utilizar ** basado en la longitud del Key. */ function balancer($iServer,$zKey) { return strlen($zKey)%$iServer; } /* ** Ahora agregamos nuestra funcion ** como balancer. / $cache->setBalancer(quot;balancerquot;); ?> Cesar D. Rodas - http://cesar.la/ - L EX AT 19
  72. 72. Alternativas para sitios pequeños <?php /* Objeto phpcached */ $cache = new phpcached;
  73. 73. Alternativas para sitios pequeños <?php /* Objeto phpcached */ $cache = new phpcached; /* Agregar directorio de destino */ $cache->addFolder(quot;/var/tmp/cachedquot;);
  74. 74. Alternativas para sitios pequeños <?php /* Objeto phpcached */ $cache = new phpcached; /* Agregar directorio de destino */ $cache->addFolder(quot;/var/tmp/cachedquot;); /* A utilizar Phpcached */ /* La funcion quot;do long process()quot; sólo será */ /* ejecutada cada 10 minutos */ if (($value=$cache->get(quot;keyquot;)) === false) { $value = do long process(); $cache->set(quot;keyquot;,$value,600); } return $value; ?> Cesar D. Rodas - http://cesar.la/ - L EX AT 20
  75. 75. Muchas gracias! Preguntas? Cesar Rodas. crodas@member.fsf.org http://cesarodas.com/ Mi blog. http://cesar.la/ 21
  76. 76. Resources Memcached • http://www.danga.com/memcached • http://tangent.org/552/libmemcached.html Mamcached Mail list. • http://lists.danga.com/mailman/listinfo/memcached PHPCached • http://www.phpclasses.org/phpcached 22
  77. 77. Powered by... Cesar D. Rodas - http://cesar.la/ - L EX AT 23
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×