Memcached se utiliza para acelerar los sitios web dinámicos basados en bases de datos mediante el almacenamiento en caché de datos y objetos en la RAM. Esto reduce la cantidad de veces que se debe leer una fuente de datos externa, lo que reduce los gastos generales y acelera los tiempos de respuesta. El software de almacenamiento en caché de memoria es un proyecto gratuito de código abierto que cualquiera puede usar.
Al final de la guía, sabrá cómo instalar y configurar Memcached en su Debian 11 Bullseye sistema operativo.
Requisitos
- SO recomendado: Diana de Debian 11
- Cuenta de usuario: Una cuenta de usuario con privilegios sudo o acceso raíz (comando su) .
Actualización del sistema operativo
Actualice su Debian 11 sistema operativo para asegurarse de que todos los paquetes existentes estén actualizados:
sudo apt update && sudo apt upgrade
Acceso raíz o Sudo
De forma predeterminada, cuando crea su cuenta al inicio con Debian en comparación con otras distribuciones, no recibe automáticamente el estado de sudoers. Debe tener acceso a la contraseña raíz para usar el comando su o visite nuestro tutorial sobre cómo agregar un usuario a Sudoers en Debian.
Instalar Memcached
De forma predeterminada, Debian 11 tiene Memcached en sus repositorios. Para instalar Memcached, ingresa el siguiente comando:
sudo apt install memcached libmemcached-tools
Ejemplo de salida:
Escriba Y, luego presione TECLA ENTER para continuar con la instalación.
Tenga en cuenta que la segunda opción de instalación, "libmemcached-tools ”, proporciona comandos adicionales para brindar interacción adicional y habilidades de ejecución a Memcached.
Luego, verifique que Memcached se instaló correctamente usando el comando de política apt-cache :
sudo apt-cache policy memcached
Ejemplo de salida:
Memcached debe estar activado por defecto. Para verificar esto, use el comando systemctl status de la siguiente manera:
systemctl status memcached
Ejemplo de salida:
Si el servicio no se ha activado, inicie Memcached con el siguiente comando:
sudo systemctl start memcached
Otros comandos útiles para administrar el servicio Memcached son los siguientes:
Para habilitar el servicio Memcached en el arranque del sistema:
sudo systemctl enable Memcached
Para detener el servicio Memcached:
sudo systemctl stop memcached
Para deshabilitar el servicio Memcached en el arranque del sistema:
sudo systemctl disable memcached
Para reiniciar el servicio Memcached:
sudo systemctl restart memcached
A continuación, verifique que Memcached esté escuchando activamente localhost en el puerto 11211 predeterminado. . Para confirmar este tipo, lo siguiente:
ps -ef | grep memcached
Ejemplo de salida:
memcache 5934 1 0 09:36 ? 00:00:00 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1 -P /var/run/memcached/memcached.pid
root 6591 3653 0 09:55 pts/0 00:00:00 grep memcached
Configurar Memcached
Memcached debe estar escuchando 127.0.0.1 . A continuación, abra la configuración predeterminada en el archivo de configuración ubicado en “/etc/memcached.conf “.
sudo nano /etc/memcached.conf
Ahora desplácese hacia abajo y busque la siguiente línea y marque “-l” parámetro que existe. Déjelo como predeterminado a menos que tenga una IP interna en una red local o una IP externa desde el exterior; debe modificar la dirección IP predeterminada de 127.0.0.1 a la nueva dirección IP.
-l 127.0.0.1
Se recomienda deshabilitar UDP. A menos que necesite habilitar esta función, agregue la siguiente línea para deshabilitarla.
-U 0
Antes de terminar, se recomienda cambiar la asignación de memoria predeterminada de 64 MB, ya que esto no es mucho para sitios web más grandes y no verá muchos beneficios al usar Memcached.
Debe configurar esto en algo razonable para su servidor. Si tienes de 3 a 6 GB de RAM poco usada, ponla en 1GB o 2GB. Esta es una configuración que debe decidir que funciona mejor para su servidor. El servidor de la guía se ejecuta en 8 GB, por lo que ajustamos nuestro caché a 2 GB solo como ejemplo.
-m 2000
Ahora guarda el archivo CTRL+O y presiona “Y,” luego CTRL+X para salir y reiniciar su instancia de Memcached.
sudo systemctl restart memcached
Opcional:permitir reglas de UFW de Memcached
Si tiene instalado UFW, debe crear reglas de autorización de UFW en el puerto TCP 11211 . Dependiendo de su instalación y requisitos si se usa singular o en una red de clúster, a continuación se muestran algunos ejemplos:
Ejemplo de conexión de red IP única:
sudo ufw allow proto tcp from <ip address> to any port 11211
Conexión de red IP de clúster con muchas instancias ejemplo:
sudo ufw allow proto tcp from <ip address>/24 to any port 11211
Tenga en cuenta que la segunda regla UFW es una regla de subred. Tenga en cuenta que asegúrese de que la red interna sea segura y confiable antes de permitirla.
Instalar bibliotecas PHP de Memcached
Memcached viene con varias extensiones para los lenguajes de programación, pero se usa principalmente para PHP. Para instalar la biblioteca PHP ingrese lo siguiente.
sudo apt install php-memcached apache2 libapache2-mod-php php php-cli php-memcached php-memcached
Servidor HTTP Apache
Los usuarios de Apache pueden ejecutar el siguiente código para habilitar Memcached en su sistema.
phpenmod memcached && sudo service apache2 restart
Servidor HTTP Nginx
Memcached para Nginx se habilitará en su bloque de PHP de manera predeterminada una vez que se instale.
Instalar bibliotecas adicionales
Puede instalar la compatibilidad con Python o Perl ejecutando los siguientes comandos.
Compatibilidad con Python:
sudo apt install python3-pymemcache
Compatibilidad con Perl:
sudo apt install libcache-memcached-libmemcached-perl
Acceso a Memcached desde la línea de comandos
Las estadísticas de Memcached se pueden recopilar con mucho software adicional y IU WEB con las que funciona en conjunto. Sin embargo, una mejor forma de comprobarlo es interactuar con Memcached directamente mediante la línea de comandos.
Primero, TELNET a su servicio:
telnet localhost 11211
Ejemplo de salida:
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
A continuación, puede obtener una descripción general de su servicio Memcached utilizando el siguiente comando:
stats
Ejemplo de salida:
STAT pid 5934
STAT uptime 1275
STAT time 1631930242
STAT version 1.6.9
STAT libevent 2.1.12-stable
STAT pointer_size 64
STAT rusage_user 0.113635
STAT rusage_system 0.000000
STAT max_connections 1024
STAT curr_connections 1
STAT total_connections 2
STAT rejected_connections 0
STAT connection_structures 2
STAT response_obj_oom 0
STAT response_obj_count 1
STAT response_obj_bytes 16384
STAT read_buf_count 2
STAT read_buf_bytes 32768
STAT read_buf_bytes_free 0
STAT read_buf_oom 0
STAT reserved_fds 20
STAT cmd_get 0
STAT cmd_set 0
STAT cmd_flush 0
STAT cmd_touch 0
STAT cmd_meta 0
STAT get_hits 0
STAT get_misses 0
STAT get_expired 0
STAT get_flushed 0
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 7
STAT bytes_written 0
STAT limit_maxbytes 67108864
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT time_in_listen_disabled_us 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT slab_reassign_rescues 0
STAT slab_reassign_chunk_rescues 0
STAT slab_reassign_evictions_nomem 0
STAT slab_reassign_inline_reclaim 0
STAT slab_reassign_busy_items 0
STAT slab_reassign_busy_deletes 0
STAT slab_reassign_running 0
STAT slabs_moved 0
STAT lru_crawler_running 0
STAT lru_crawler_starts 6
STAT lru_maintainer_juggles 1325
STAT malloc_fails 0
STAT log_worker_dropped 0
STAT log_worker_written 0
STAT log_watcher_skipped 0
STAT log_watcher_sent 0
STAT unexpected_napi_ids 0
STAT round_robin_fallback 0
STAT bytes 0
STAT curr_items 0
STAT total_items 0
STAT slab_global_page_pool 0
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT evicted_active 0
STAT evictions 0
STAT reclaimed 0
STAT crawler_reclaimed 0
STAT crawler_items_checked 0
STAT lrutail_reflocked 0
STAT moves_to_cold 0
STAT moves_to_warm 0
STAT moves_within_lru 0
STAT direct_reclaims 0
STAT lru_bumps_dropped 0
END
Como arriba, esto muestra algunas cosas cruciales que quizás desee ver, como el tiempo de actividad, la cantidad de elementos en el caché y la cantidad de conexiones de clientes a la instancia
Puede refinar la búsqueda examinando las diferentes losas (particiones) de memoria de Memcached para obtener resultados.
Ejemplos a continuación:
Enumere las losas en la instancia conectada:
stats slabs
Lista de losas que incluye un recuento de los elementos almacenados dentro de cada losa :
stats items
A continuación, puede acceder a los datos y eliminarlos mediante el comando de volcado de caché. para enumerar las claves.
Primero, ejecute el comando cachedump :
stats cachedump [slab ID] [number of items, 0 for all items]
Ejemplo en acción:
stats cachedump 1 0
Ejemplo de salida:
ITEM testkey [9 b; 1296857316 s]
END
Como arriba, SLAB 1 tiene un elemento con la clave “testkey.” Para obtener el valor real, puede usar la “obtener clave” comando de la siguiente manera:
get testkey
Ejemplo de salida:
VALUE testkey 0 9
test data
END
Por último, para eliminar un elemento almacenado en caché, en este caso, la “testkey” use el siguiente comando:
delete testkey
Ejemplo de salida:
DELETED