Memcached es un almacén de datos clave-valor en memoria de alto rendimiento, gratuito y de código abierto. Se utiliza principalmente como un sistema de almacenamiento en caché para acelerar las aplicaciones mediante el almacenamiento en caché de varios objetos de los resultados de las llamadas a la base de datos.
En este tutorial, explicaremos cómo instalar y configurar Memcached en CentOS 7.
Requisitos previos #
Antes de continuar con este tutorial, asegúrese de haber iniciado sesión como usuario con privilegios de sudo.
Instalando Memcached #
Los paquetes de Memcached se incluyen en los repositorios predeterminados de CentOS 7. La instalación es bastante fácil, simplemente escriba el siguiente comando:
sudo yum install memcached libmemcached
El libmemcached
El paquete proporciona varias herramientas de línea de comandos para administrar el servidor Memcached.
Una vez completada la instalación, inicie y habilite el servicio Memcached:
sudo systemctl start memcached
sudo systemctl enable memcached
Eso es todo, en este punto tiene Memcached instalado y ejecutándose en su servidor CentOS 7.
Configuración de Memcached #
Memcached se puede configurar editando /etc/sysconfig/memcached
expediente. De forma predeterminada, Memcached está configurado para escuchar en todas las interfaces. En las siguientes secciones, le mostraremos cómo configurar el servicio para acceso local y remoto.
Cuando se configura incorrectamente, Memcached puede usarse para realizar un ataque de denegación de servicio distribuido (DDoS).
Solo acceso local #
Si el cliente que se conecta al servidor también se ejecuta en el mismo host, se recomienda configurar el servicio de Memcached para escuchar solo el host local.
Para hacerlo, abre el memcached
archivo de configuración con su editor de texto:
sudo nano /etc/sysconfig/memcached
En las OPTIONS
parámetro agregar -l 127.0.0.1
. Esto le indica a Memcached que se vincule solo a la interfaz especificada.
OPTIONS="-l 127.0.0.1"
Reinicie el servicio Memcached para que los cambios surtan efecto:
sudo systemctl restart memcached
Acceso Remoto #
Si la aplicación que se conectará a Memcached está alojada en un servidor remoto, debe configurar su firewall y permitir el acceso al puerto 11211 de Memcached solo desde la dirección IP del cliente.
El siguiente ejemplo asume que desea conectarse al servidor Memcached a través de una red privada. La IP del servidor Memcached es 192.168.100.20
y la dirección IP del cliente es 192.168.100.30
.
CentOS viene con una herramienta de configuración de cortafuegos FirewallD
. Los siguientes comandos crearán una nueva zona llamada memcached
, abre el puerto 11211
y permitir el acceso solo desde la dirección IP del cliente.
sudo firewall-cmd --new-zone=memcached --permanent
sudo firewall-cmd --zone=memcached --add-port=11211/udp --permanent
sudo firewall-cmd --zone=memcached --add-port=11211/tcp --permanent
sudo firewall-cmd --zone=memcached --add-source=192.168.100.30/32 --permanent
sudo firewall-cmd --reload
Una vez que su firewall esté configurado, el siguiente paso es editar la configuración de Memcached y configurar el servicio para escuchar en la interfaz de red privada del servidor:
Abre el memcached
archivo de configuración:
sudo nano /etc/sysconfig/memcached
En las OPTIONS
parámetro agregue la dirección IP del servidor -l 192.168.100.20
:
OPTIONS="-l 192.168.100.20"
Guarde el archivo y reinicie el servicio Memcached:
sudo systemctl restart memcached
Conectando a Memcached #
Para conectarse al servidor de Memcached, debe usar un cliente específico del idioma.
PHP#
Para usar Memcached como una base de datos de almacenamiento en caché para su aplicación PHP como WordPress, Drupal o Magento, debe instalar php-pecl-memcached
extensión:
sudo yum install php-pecl-memcache
Pitón #
Hay varias bibliotecas de Python para interactuar con Memcache. Puede instalar su biblioteca preferida usando pip:
pip install pymemcache
pip install python-memcached