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 memoria 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 del tutorial, sabrá cómo instalar y configurar Memcached en su sistema operativo openSUSE Leap 15.
Requisitos
- SO recomendado: salto de openSUSE – 15.x
- Cuenta de usuario: Una cuenta de usuario con sudo o acceso root.
Actualizar Sistema Operativo
Actualice su openSUSE sistema operativo para asegurarse de que todos los paquetes existentes estén actualizados:
sudo zypper refresh
El tutorial usará el comando sudo y asumiendo que tiene estado sudo .
Para verificar el estado de sudo en su cuenta:
sudo whoami
Ejemplo de salida que muestra el estado de sudo:
[joshua@opensuse ~]$ sudo whoami
root
Para configurar una cuenta Sudo existente o nueva, visite nuestro tutorial sobre agregar un usuario a Sudoers en openSUSE .
Para usar la cuenta raíz , use el siguiente comando con la contraseña de root para iniciar sesión.
su
Instalar Memcached
Por defecto, openSUSE tiene Memcached en sus repositorios. Para instalar Memcached, ingresa el siguiente comando:
sudo zypper install memcached libmemcached
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 ”, proporciona comandos adicionales para brindar interacción adicional y habilidades de ejecución a Memcached.
Luego, verifique que Memcached se instaló correctamente verificando su versión y compilación
sudo memcached --version
Ejemplo de salida:
memcached 1.5.6
El servicio, por defecto, no estará activo. Para iniciar Memcached usando el siguiente comando:
sudo systemctl enable memcached --now
Memcached debe estar activado por defecto. Para verificar esto, use el comando systemctl status de la siguiente manera:
systemctl status memcached
Ejemplo de salida:
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
Configurar Memcached
Memcached debe estar escuchando 127.0.0.1 . Abra la configuración predeterminada en el archivo de configuración ubicado en “/etc/sysconfig/memcached “.
sudo nano /etc/sysconfig/memcached
La primera opción es cambiar el número de puerto tradicional para Memcached.
Primero, desplace el MEMCACHED_PARAM Línea S:
MEMCACHED_PARAMS=" -l 127.0.0.1"
Actualmente, Memcached está configurado para escuchar localhost, y puede configurar una dirección IP interna o externa si es necesario cambiando 127.0.0.1.
Ejemplo:
MEMCACHED_PARAMS=" -l 192.51.5.231"
A continuación, en la misma línea, puede agregar banderas adicionales para cambiar la configuración. Una de las configuraciones más populares para modificar es el tamaño predeterminado de 64 MB a algo más significativo si tiene un servidor potente.
Ejemplo de cambio de RAM de 64 MB a 2 GB:
MEMCACHED_PARAMS=" -l 192.51.5.231 m - 2000"
Otra opción popular es deshabilitar UDP si no es necesario.
Para hacer esto, use lo siguiente:
MEMCACHED_PARAMS=" -l 192.51.5.231 m - 2000 - U 0"
Una descripción general del tutorial sobre cómo se verá su configuración una vez que haya terminado.
Solo ejemplo:
Ahora guarda el archivo CTRL+O y presiona “Y,” luego CTRL+X para salir y reiniciar su instancia de Memcached.
sudo systemctl restart memcached
Configurar Firewalld para Memcached
De forma predeterminada, no se configuran reglas para Memcached. Esto significa que deberá crear reglas de permiso que son esenciales para detener los ataques. Si no asegura Memcached, se generarán problemas en el futuro, así que no se salte esto a menos que tenga otros medios para proteger su instalación.
Primero, agregue una nueva zona dedicada para la política de firewalld de Memcached:
sudo firewall-cmd --permanent --new-zone=memcached
A continuación, especifique las direcciones IP permitidas que pueden acceder a Memcached.
sudo firewall-cmd --permanent --zone=memcached --add-source=1.2.3.4
Reemplace 1.2.3.4 con la IP dirección que se agregará a la lista de permitidos.
Una vez que haya terminado de agregar las direcciones IP, abra el puerto de Memcached.
De forma predeterminada, este es el puerto TCP 11211 .
sudo firewall-cmd --permanent --zone=memcached --add-port=11211/tcp
Tenga en cuenta que puede cambiar el puerto predeterminado en su archivo de configuración si cambia la regla de apertura del puerto del cortafuegos anterior al nuevo valor.
Después de ejecutar esos comandos, vuelva a cargar el firewall para implementar las nuevas reglas:
sudo firewall-cmd --reload
Ejemplo de salida si tiene éxito:
success
Instalar bibliotecas PHP de Memcached
Memcached viene con varias extensiones para los lenguajes de programación, pero se usa principalmente para PHP. Sin embargo, openSUSE necesita algunos repositorios adicionales instalados para extraer estos paquetes, ya que no aparecen en el repositorio predeterminado.
Importar servidor:php:extensiones para openSUSE Leap 15.3 :
sudo zypper addrepo https://download.opensuse.org/repositories/server:php:extensions/openSUSE_Leap_15.3/server:php:extensions.repo
Importar servidor:php:extensiones para openSUSE Leap 15. 2:
sudo zypper addrepo https://download.opensuse.org/repositories/server:php:extensions/openSUSE_Leap_15.2/server:php:extensions.repo
Una vez hecho esto, actualice el repositorio.
sudo zypper refresh
A continuación, instale la compatibilidad con PHP de Memcached con el siguiente comando.
Ejemplo de PHP 7.4:
sudo zypper install php7-memcached php7-memcached
Ejemplo de PHP 8.0:
sudo zypper install php8-memcached php8-memcached
Ejemplo de salida (PHP 8):
Escriba Y, luego presione TECLA ENTER para continuar con la instalación.
Además, para la compatibilidad de Memcached con Python, puede instalar los siguientes paquetes mediante la biblioteca PIP.
pip3 install pymemcache --user
pip3 install python-memcached --user
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 '^]'.
Tenga en cuenta que si Telnet no está instalado, ejecute el siguiente comando para instalarlo.
sudo zypper install telnet
Nunca se debe permitir que TELNET se comunique con una red pública y restringirse en entornos de red privada.
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
Cómo eliminar (desinstalar) Memcached
Para eliminar Memcached, usa el siguiente comando en tu terminal.
sudo zypper remove memcached libmemcached
Esto eliminará Memcached de su sistema inmediatamente.