Alexander A. E. Full Stack Developer

Memcached

Memcached es un sistema distribuido de caché en memoria orientado a objetos.

¿Qué quiere decir?, ¿cuáles son sus características?
  • distribuido: memcached puede instalarse en varios servidores a la vez que pueden ser configurados para actuar como una sola entidad sin comunicarse entre si.

  • en memoria: mantiene los fragmentos de información en la memoria RAM

  • orientado a objetos: almacena los items en pares del tipo clave-valor basándose en tablas hash

  • Implementado en el servidor y en el cliente: el cliente sabe como enviar items al servidor, cuando no se puede contactar al servidor y como solicitar items del servidor. El servidor sabe como almacenar, retornar o expirar los items según las solicitudes del cliente.


Instalación

Podemos instalarlo mediante el gestor de paquetes de nuestro sistema operativo:

    apt-get install memcached

    pacman -S memcache

    yum install memcached

o compilándolo:

    wget http://memcached.googlecode.com/files/memcached-1.4.x.tar.gz
    tar xfz memcached-1.4.x.tar.gz
    cd memcached-1.4.x/
    ./configure
    make && make install

podemos comprobar la ruta del comando mediante:

    which memcached

lo que nos debería retornal algo así como:

    /usr/local/bin/memcached

y si algo falla, siempre podemos consultar la wiki.


Ejecución

Podemos ejecutar el comando memcached con algunas opciones como:

    memcached -d -p 11211 -m 128 -c 1024 -P $HOME/memcached.pid

donde:

  • d: permite correr memcached como un demonio
  • p: indica el puerto, por defecto es 11211
  • m: cantidad de memoria en MB máxima a usar
  • c: número máximo de conexiones simultáneas
  • P: ubicación del archivo en el que se almacenará el PID del proceso, solo es válido cuando se ejecuta como un demonio.

se puede leer el manual, como siempre, por medio de:

    man memcached

Para comprobar que se esté ejecutando, podemos usar telnet, lo que nos devuelve algo como:

    telnet localhost 11211
    Trying 127.0.0.1...
    Connected to localhost.

que indica que se ha conectado a memcached por medio del puerto que especificamos.


Memcached y Systemd

Como adicional, el archivo de configuración y scripts necesarios para administrar memcached mediante systemd.

memcached.config:

    PORT="11211"
    USER="user"
    MAXCONN="512"
    CACHESIZE="32"
    PID="/home/user/.memcached.pid"
    OPTIONS=""

memcached.service:

    [Unit]
    Description=memcached daemon
    After=network.target

    [Service]
    EnvironmentFile=/etc/sysconfig/memcached.config
    ExecStart=/usr/local/bin/memcached -p ${PORT} -u ${USER} -m ${CACHESIZE} -c ${MAXCONN} -P ${PID} $OPTIONS
    ExecStop=/bin/kill -9 'cat ${PID}'; /bin/rm ${PID}

    [Install]
    WantedBy=multi-user.target

con ello, solo tendríamos que ejecutar, según convenga:

    systemctl start memcached
    systemctl stop memcached
    systemctl status memcached

Y con ello, tenemos lista la configuración del servidor de memcached. Lo siguiente es configurar un cliente, y a empezar a usar la caché!

Comentarios !

comments powered by Disqus