¿Qué es y cómo se utiliza memcached?

Hace unos días, leyendo acerca de la arquitectura de Facebook leí acerca de servidores Web y de servidores de Memcache. Alejado hace algunos años del desarrollo web no tenía ni idea de que se trataba esto.

Leyendo mis feeds encuentro una publicación acerca de Memcached, que me sirvió para entender un poco más de que se trata y como se utiliza de una forma por demás de clara.

Memcached es un sistema de caché distribuido que se utiliza para guardar los datos de las aplicaciones en un (conjunto de) servidor(es) (servidores de caché), todo esto de una forma sencilla y transparente. Estas caracaterísticas lo han convertido en un sistema muy utilizado en varios proyectos.

Memcached permite guardar lo que se nos ocurra y que a nuestro criterio sea digno de ser “cacheado“, ejemplo: resultados de cálculos o consultas a base de datos complejas, información de sesiones de los usuarios, etc.

Memcached se ejecuta en uno o varios equipos que actuará(n) como servidores y de los cuales, entre otros parámetros, se puede ajustar el tamaño de la memoria que queremos que utilice para ello.

Una vez instalados los servidores, las aplicaciones a través de una API podrán guardar elementos en la caché, recuperarlos o borrarlos, todo esto de una forma muy sencilla.

memcachedarchitecture

Para aquellos lectores más técnicos que no se quieren quedar solamente con definiciones, veamos un poco como sería poner en marcha un servidor memcached y como hacer uso del mismo desde PHP.

Si eres usuario de Debian o Debian/Ubuntu, simplemente con tener configurados los repositorios adecuados puedes descargar memcached a través de Aptitude: aptitude install memcached o sudo aptitude install memcached.

La configuración del servicio se realiza por medio del arhchivo /etc/memcached.conf y en el mismo se pueden modificar parámetros como IP y puerto al que escucha, tamaño de la memoria que le dedicaremos, etc.

Debido a que se instala como cualquier otro servicio, lo controlaremos como cualquier otro servicio, por ejemplo: /etc/inid.d/memcached restart o sudo /etc/inid.d/memcached restart.

Como se mencionó antes, las aplicaciones deben hacer uso de una API para utilizar memcached, por ejemplo, para el caso de PHP existen dos versiones, la primera memcache y la segunda memcached. También podemos instalarlas por medio de Aptitude: aptitude install php5-memcache o sudo  aptitude install php5-memcache. Para que esté disponible restaría descomentar la línea de la extensión en el archivo /etc/php5/conf.d/memcache.ini. Para comprobar que todo esté como corresponde podemos ejecutar la función phpinfo() de php.

php-memcache

Finalmente, para los entendidos, un pequeño script php que hace uso del servicio:

[PHP]
connect(‘localhost’, 11211) or die (“Could not connect”);

$version = $memcache->getVersion();
echo “Server’s version: “.$version.”n”;

$tmp_object = new stdClass;
$tmp_object->str_attr = ‘test’;
$tmp_object->int_attr = 123;

$memcache->set(‘key’, $tmp_object, false, 10) or die (“Failed to save data at the server”);
echo “Store data in the cache (data will expire in 10 seconds)”;

$get_result = $memcache->get(‘key’);
echo “Data from the cache:”;

var_dump($get_result);
?>
[/PHP]

Vía: EsLoMas.com

Tags: , , , , , , , , , ,


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.