• Tags

  • Twitter

  • Archivo

  • Post recientes

  • « Cómo migrar un repositorio SVN | Home | MD5 Hash »

    Instalar PHP5 Memcache Extension Module en RedHat

    By creacciona | December 5, 2008

    Bookmark and Share

    Memcache es un sistema para almacenamiento de objetos en memoria que actúa como caché para acelerar el rendimiento de aplicaciones web. Memcache ha sido diseñado de manera genérica aunque su mayor utilidad y para la que fue desarrollado inicialmente es para reducir la carga en sitios web debido a las solicitudes a base de datos que en muchos casos son innecesarias.

    Memcache fué desarrollado por Danga Interactive para el site livejournal, pero luego liberado bajo licencia BSD. Hoy en día es empleado por muchos otros sitios webs debido a su gran utilidad, entre ellos: Livejournal, Slashdot, Wikipedia, SourceForge, FotoLog, …

    El funcionamiento de memcache es sencillo. En lugar de acceder a la base de datos para solicitar determinada información primero se accede a memcached (el servidor de memcache) a través del protocolo TCP/IP (así se puede acceder a servidores memcache en máquinas remotas o en local). Si este tiene la información, la devuelve y si no, debemos hacer la petición a la base de datos e introducir los datos en memcached para que puedan ser usados la próxima vez que los necesitemos. Además, memcached tiene un tiempo de expiración, tras pasar este tiempo almacenado en el servidor este se considera descartable y se borra del servidor, dejando espacio para otros objetos.

    Memcaché está basado en la libreria libevent, se encarga de la notificación de eventos asíncrona que permite ejecutar callbacks cuando un determinado evento es disparado (además de eventos puede reaccionar a señales o a intervalos de tiempo específicos, más adelante quizás le dedique un post a esta librería).

    (nota: Antes de empezar a instalar esta extensión como módulo PHP debemos tener instalado el demonio memcached):

    Instalación del demonio memcached

    1. Descargar e instalar ‘libevent’ (dependencia de memcached)
    w get http://www.monkey.org/~provos/libevent-1.4.8-stable.tar.gz
    tar xfz libevent-1.4.8-stable.tar.gz
    cd libevent-1.4.8-stable
    ./configure && make && sudo make install
    2. Crear un enlace limbólico a libevent
    sudo ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib
    3. Descargar e instalar el demonio memcached
    wg et http://danga.com/memcached/dist/memcached-1.2.6.tar.gz
    tar xfz memcached-1.2.6.tar.gz
    cd memcached-1.2.6
    ./configure && make && sudo make install
    4. Ejecutar memcached como demonio (d = daemon, m = memory, u = user, l = IP to listen to, p = port)
    memcached -d -m 1024 -u root -l 127.0.0.1 -p 11211

    Instalación de PHP5-Memcache

    En caso de no poder instalarlo como paquete, se compila del fuente.
    La ruta del paquete de PECL:

    http://pecl.php.net/get/memcache-2.2.4.tgz


    Instalación de la extensión de PHP MemCache:

    cd /files/download/

    w get http://pecl.php.net/get/memcache-2.2.4.tgz

    tar -xvf memcache-2.2.4.tgz

    cd memcache-2.2.4

    phpize && ./configure—enable-memcache && make

    Copiar el archivo memcache.so al directorio de módulos por defecto.

    vi /etc/php.ini

    Añadir la linea que carga la extensión:

    extension=memcache.so

    /etc/init.d/httpd restart

    If you check your phpinfo() you should see a MemCache section appear.

    You can now fully use the MemCache functionality in your PHP.

    1. Download the extension module
    apt-get install php5-memcache
    2. Edit /etc/php5/conf.d/memcache.ini and uncomment the following line by removing the semi-colon
    extension=memcache.so
    3. Restart apache
    /etc/init.d/apache2 restart

    1. Test de la instalación

    2. Create a file ‘memcache_test.php’ in your webroot and paste the following:
    < ?php
    $memcache = new Memcache;
    $memcache->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)
    \n”;

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

    var_dump($get_result);
    ?>

    1. Test to see if the file renders in your browser

    Cheers!

    Tags:

    Related posts








    Topics: Desarrollo web |

    Comments