Optimice el rendimiento de su base de datos utilizando el servidor Memcached con sus aplicaciones PHP y Python
Si alguna vez ha sentido el dolor de una alta carga de la base de datos que causa la ralentización de sus aplicaciones web y se preguntó "¿Hay alguna manera de disminuir la latencia causada por las consultas de la base de datos?", Entonces la respuesta a esa pregunta es un gran sí. ¡Memcached, un amigable demonio de caché de memoria de vecindario, está aquí para resolver todos tus problemas! El almacenamiento en caché de la base de datos es uno de los métodos más simples para aliviar la carga de la base de datos y acelerar las aplicaciones web dinámicas.
Memcached se define a sí mismo como un sistema de almacenamiento en caché de objetos de memoria distribuida de alto rendimiento, de naturaleza genérica, pero originalmente diseñado para acelerar las aplicaciones web dinámicas al aliviar la carga de la base de datos. Desarrollado por Brad Fitzpatrick para su sitio web LiveJournal en 2003.
En este artículo, veremos cómo instalar y configurar Memcached en Ubuntu 20.04 y veremos sus clientes específicos de idioma.
Prerrequisitos
Un sistema instalado con Ubuntu 20.04 con un usuario con derechos administrativos, es decir sudo
usuario.
Instalación
Memcached está disponible en el repositorio oficial de Ubuntu 20.04, además de Memcached también vamos a instalar una herramienta CLI conocida como libmemcached-tools
para administrar Memcached. Simplemente ejecute el siguiente comando para instalar ambos
sudo apt install memcached libmemcached-tools
Verificar instalación
Una vez completada la instalación, el demonio Memcached se inicia en segundo plano por sí mismo. Para verificar la instalación, podemos usar un comando de libmemcached-tools
paquete para obtener las estadísticas del servidor Memcached. O corre
memcstat --servidores localhost
o
memcstat --servidores 127.0.0.1
El memcstat
El comando muestra las estadísticas del servidor en ejecución. El comando anterior dará como resultado la salida que se muestra a continuación.
Varias estadísticas como tiempo de actividad
en segundos, versión
y pid
se mostrará como salida. Sin embargo, si no se muestra ningún resultado, es posible que Memcached no se esté ejecutando. Por lo tanto, debe ejecutar el siguiente comando para iniciar el servidor Memcached.
sudo systemctl start memcached
Para ejecutar el servidor Memcached al iniciar el sistema, use el siguiente comando.
sudo systemctl habilitar memcached
Configurar Memcached
Si tiene su Memcached instalado en el servidor del sitio web, no es necesario cambiar el archivo de configuración ya que Memcached está preconfigurado para funcionar con localhost.
Por otro lado, si ha instalado Memcached en un sistema separado, deberá cambiar la configuración para permitir que el servidor remoto acceda al servidor Memcached.
Configuración del acceso remoto para Memcached Server
Memcached es vulnerable a los ataques DDoS (Denegación de servicio distribuida). La regla de firewall incorrecta y los puertos UDP abiertos dejarán su servidor abierto y vulnerable a los ataques DDoS.
Para mitigar el riesgo, podemos deshabilitar el protocolo UDP para Memcached en la configuración o configurar el firewall solo para permitir servidores confiables.
Fuera de la caja, Ubuntu se envía sin puertos TCP o UDP abiertos. Además, el demonio de firewall ufw
(Cortafuegos sencillo) no está habilitado de forma predeterminada.
Vamos a habilitar el firewall y configurar la configuración de Memcached para que podamos mitigar la vulnerabilidad DDoS.
Primero, habilite el ufw
ejecutando el siguiente comando:
sudo systemctl habilitar ufw
Entonces inicia el ufw
service ejecutando el siguiente comando:
sudo systemctl start ufw
Con el Firewall en ejecución, finalmente podemos configurar las reglas del firewall. En primer lugar, habilite el puerto 22 para permitir conexiones SSH. Se necesita SSH para acceder de forma remota al servidor deseado.
sudo ufw permitir 22
En segundo lugar, debe conocer la dirección IP del cliente, es decir, el host de la aplicación web y la dirección IP del servidor, es decir, el servidor Memcached.
En este caso, supongamos que la IP del cliente es 192.168.0.4
y la IP del servidor Memcached 192.168.0.5
en una red local.
Entonces, para permitir el acceso remoto del servidor memcached al servidor cliente, ejecute:
sudo ufw permite desde 192.168.0.4 a cualquier puerto 11211
Reemplace la 192.168.0.4
con su dirección IP de cliente deseada.
A continuación, edite el archivo de configuración de Memcached ubicado en /etc/memcached.conf
mediante la ejecución nano
mando.
sudo nano /etc/memcached.conf
El memcached.conf
El archivo de configuración se abrirá con el editor nano, busque el -l 127.0.0.1
línea en la configuración y reemplazar 127.0.0.1
con su IP de Memcached Server o en esta instancia 192.168.0.5
.
Después de reemplazar la prensa ctrl + o
para escribir en el archivo de configuración y presione enter, presione ctrl + x
para salir de nano.
Reinicie el servidor Memcached y ufw
firewall ejecutando el siguiente comando.
sudo systemctl reiniciar memcached ufw
Ahora hemos terminado con la instalación y configuración del servidor Memcached en Ubuntu 20.04.
Conectarse al servidor Memcached
Para utilizar el servidor Memcached, deberá instalar un cliente específico del idioma. Afortunadamente, Memcached admite muchos idiomas populares.
Entonces veamos cómo instalar php
y pitón
cliente para Memcached.
PHP es el lenguaje de scripting del lado del servidor más popular y Memcached es utilizado principalmente por desarrolladores web para mejorar el rendimiento del servidor de aplicaciones web impulsadas por PHP.
Para instalar el soporte de memcached en php, correr:
sudo apt install php-memcached
Python también tiene varias bibliotecas que pueden funcionar e interactuar con el servidor Memcached, como pymemcached
o python-memcached
.
Puede instalar memcached para python ejecutando los siguientes comandos pip:
pip instalar pymemcache
pip instalar python-memcached
En conclusión, hemos analizado la instalación, la configuración y algunos clientes específicos de idioma de Memcached en Ubuntu 20.04.
Para conocer el uso más detallado y avanzado de Memcached, eche un vistazo a Memcached Wiki.