Gestión de Redis en Core-Admin: instancias independientes e integración con WordPress


#1

Introducción

Core-Admin incluye un módulo de Redis Management que permite desplegar y administrar instancias Redis de forma centralizada, ya sea como servidores Redis genéricos o integrados directamente con sitios WordPress para funcionar como caché de objetos. Este artículo cubre ambos escenarios.


1. Configuración inicial de Redis Management

Antes de crear instancias, es recomendable revisar la configuración base del módulo.

Accede a Redis Management desde el panel lateral y pulsa Configure en el árbol de navegación.

Los parámetros configurables son:

Parámetro Valor por defecto Descripción
Base directory /var/lib/redis-instances Directorio raíz donde se almacenan los datos de cada instancia
Redis binary Auto-detectado Ruta al binario redis-server
Port range start 6380 Puerto inicial para asignar a nuevas instancias (se auto-incrementa)

…luego:

…luego:

image


2. Planes de Redis

Los planes definen las cuotas y políticas de cada instancia. Se acceden desde el nodo Redis Plans en el árbol lateral.

Crear un plan

Pulsa Add y configura:

  • Name: Nombre identificativo (ej: “Standard”, “Premium”, “WordPress Cache”)
  • Description: Descripción del uso previsto
  • Max memory (MB): Límite de memoria RAM (por defecto 256 MB)
  • Max clients: Conexiones simultáneas permitidas (por defecto 100)
  • Eviction policy: Política de desalojo cuando se alcanza el límite de memoria

Políticas de desalojo disponibles

Política Comportamiento
noeviction Devuelve error cuando se llena la memoria (no elimina nada)
allkeys-lru Elimina las claves menos usadas recientemente (recomendada para caché general)
volatile-lru Igual que LRU pero solo entre claves con TTL definido
allkeys-lfu Elimina las claves menos frecuentemente usadas (por defecto, recomendada para WordPress)
volatile-lfu Igual que LFU pero solo entre claves con TTL
allkeys-random Elimina claves al azar
volatile-random Elimina al azar solo claves con TTL
volatile-ttl Elimina las claves con TTL más cercano a expirar

Nota: Al modificar un plan, los cambios se aplican automáticamente a todas las instancias que lo usan (se regenera la configuración y se reinicia el servicio).


3. Instancias Redis genéricas (standalone)

Crear una instancia

Desde el nodo Redis Instances en el árbol, pulsa Add:

  • Name: Nombre FQDN para la instancia (ej: redis.miservidor.com)
  • Plan: Selecciona uno de los planes creados
  • Bind address: Dirección de escucha (por defecto 127.0.0.1 — solo local)
  • Persistence mode: Modo de persistencia de datos

Modos de persistencia

Modo Descripción
rdb Snapshots periódicos a disco (por defecto). Buen balance rendimiento/seguridad
aof Append-Only File — registra cada operación. Mayor durabilidad, algo más lento
both RDB + AOF combinados. Máxima seguridad
none Sin persistencia. Los datos se pierden al reiniciar. Ideal para caché pura

Al crear la instancia, Core-Admin automáticamente:

  1. Crea un usuario de sistema dedicado (redis_<nombre>)
  2. Asigna un puerto disponible a partir del rango configurado
  3. Genera una contraseña segura (64 caracteres hex)
  4. Crea la estructura de directorios (conf/, data/, logs/)
  5. Genera el fichero redis.conf con la configuración del plan
  6. Crea una unidad systemd (redis-<nombre>.service)

Controlar una instancia

En la barra de herramientas de cada instancia dispones de botones para:

  • Start / Stop / Restart: Control del servicio systemd
  • Get Info: Muestra la salida completa de redis-cli INFO (estadísticas del servidor)
  • Get CLI Command: Muestra el comando redis-cli con los parámetros de conexión para acceder manualmente

Obtener el comando CLI de conexión

El botón Get CLI Command devuelve algo como:

redis-cli -h 127.0.0.1 -p 6380 -a <contraseña>

Esto permite conectarse directamente desde terminal para tareas de depuración o administración avanzada.

…luego:


4. Monitorización y estadísticas

Cada instancia Redis tiene tres pestañas de monitorización integradas:

4.1 Cache Entries (Entradas de caché)

Muestra las claves almacenadas en la instancia con detalle de:

  • Key: Nombre de la clave
  • Type: Tipo de dato (string, list, set, zset, hash, stream)
  • TTL: Tiempo de vida restante (-1 = sin expiración)
  • Memory: Memoria consumida por la clave

Botones disponibles:

  • Refresh: Actualizar la lista (muestra las primeras 500 claves)
  • List all keys: Listar todas las claves sin límite
  • Flush all cache: Vaciar toda la caché (FLUSHALL) — requiere confirmación

4.2 Info and Stats (Información y estadísticas)

Muestra la información completa del servidor Redis organizada por secciones:

  • Server: Versión, uptime, PID, sistema operativo
  • Clients: Conexiones activas, bloqueadas, máximas
  • Memory: Uso de memoria actual, pico, fragmentación
  • Persistence: Estado de RDB/AOF, último guardado
  • Stats: Comandos procesados, hits/misses del keyspace, tráfico de red
  • Replication: Estado de replicación
  • CPU: Consumo de CPU del proceso
  • Keyspace: Número de claves por base de datos

4.3 Connected Clients (Clientes conectados)

Lista en tiempo real los clientes conectados a la instancia:

  • Address: IP y puerto del cliente
  • Age: Tiempo de conexión
  • Idle: Tiempo inactivo
  • Database: Base de datos en uso
  • Command: Último comando ejecutado
  • Flags: Flags de conexión

4.4 Activity Snapshot (Diagnóstico)

Disponible desde el árbol lateral en Diagnostics > Activity Snapshot, captura un diagnóstico de 2 segundos que incluye:

  • Slow Log: Los 20 comandos más lentos recientes
  • Client List: Conexiones activas en ese momento
  • Command Stats: Estadísticas por tipo de comando
  • Monitor: Flujo de comandos en tiempo real durante 2 segundos

…luego:

image


5. Redis integrado con WordPress

La forma más sencilla de activar Redis Object Cache en un WordPress es a través de la integración directa disponible en WordPress Management.

5.1 Activar Redis desde el panel web

  1. Accede a WordPress Management
  2. Selecciona el sitio WordPress
  3. En la pestaña principal, localiza la sección Integrations
  4. Pulsa el botón “Redis cache” (Activate Redis Server)

…luego:

…luego:

Core-Admin realizará automáticamente:

  1. Creará una instancia Redis con nombre redis.<nombre_del_hosting> (si no existe ya)
  2. Usará el primer plan Redis activo disponible
  3. Insertará las constantes de conexión en wp-config.php
  4. Instalará y activará el plugin Redis Object Cache via WP-CLI
  5. Habilitará la caché de objetos (wp redis enable)

El resultado muestra un resumen con los datos de conexión:

Redis instance: redis.ejemplo.com
Host: 127.0.0.1
Port: 6381
Password: a1b2c3d4...
Database: 0

5.2 Activar Redis desde CLI

crad-wordpress-mgr --activate-redis-server /ruta/al/wordpress

Para especificar un plan concreto:

crad-wordpress-mgr --activate-redis-server /ruta/al/wordpress --redis-plan "Premium"

5.3 Reutilizar una instancia Redis existente

Si ya tienes una instancia Redis creada y quieres asociarla a un WordPress:

crad-wordpress-mgr --reuse-redis-server redis.existente.com /ruta/al/wordpress

Si el nombre no se encuentra, el comando listará las instancias disponibles para que elijas la correcta.

5.4 Desactivar Redis en WordPress

Desde el panel: Pulsa el botón “Deactivate Redis” en la vista del WordPress.

Desde CLI:

crad-wordpress-mgr --deactivate-redis-server /ruta/al/wordpress

Importante: La desactivación elimina la configuración de Redis en WordPress (constantes WP_REDIS_* de wp-config.php y desactiva el plugin), pero no elimina la instancia Redis. Esto permite reutilizarla o gestionarla de forma independiente desde Redis Management.

5.5 Verificar el estado de Redis en WordPress

El chequeo de rendimiento de WordPress incluye una sección dedicada al estado de Redis:

crad-wordpress-mgr --check-performance /ruta/al/wordpress

En la sección Redis Object Cache del informe verás uno de estos estados:

  • Configured and active: Redis configurado y plugin activo
  • Configured but plugin not active: Constantes presentes pero plugin desactivado
  • Not configured: Sin configuración Redis

6. Integraciones con otras plataformas

Redis Management también incluye snippets de configuración para:

PrestaShop

Desde el árbol lateral: Integrations > Prestashop config. Genera los fragmentos de configuración necesarios para parameters.php y el session handler.

Uso genérico

El botón Get CLI Command en cualquier instancia proporciona los datos de conexión para integrar con cualquier aplicación que soporte Redis.


7. Buenas prácticas

  1. Para WordPress: Usa la política allkeys-lfu (por defecto) — es la más eficiente para patrones de caché de CMS
  2. Persistencia para caché: Usa none si Redis solo sirve como caché (los datos se pueden regenerar). Usa rdb o aof si almacenas sesiones
  3. Bind address: Mantén 127.0.0.1 si Redis y la aplicación están en el mismo servidor. Cambia a 0.0.0.0 solo si necesitas acceso remoto (asegura el firewall)
  4. Memoria: 256 MB es suficiente para la mayoría de WordPress. Sitios con mucho contenido pueden necesitar 512 MB o más
  5. Monitorización: Revisa periódicamente las estadísticas de Info and Stats, especialmente:
    • used_memory vs maxmemory — para detectar si necesitas más memoria
    • keyspace_hits vs keyspace_misses — ratio de aciertos de caché (idealmente >90%)
    • evicted_keys — si hay muchas evictions, considera aumentar la memoria del plan

Resumen de comandos CLI

Comando Descripción
crad-wordpress-mgr --activate-redis-server <wp> Crear e integrar Redis en WordPress
crad-wordpress-mgr --activate-redis-server <wp> --redis-plan <plan> Idem con plan específico
crad-wordpress-mgr --reuse-redis-server <redis> <wp> Reutilizar instancia existente
crad-wordpress-mgr --deactivate-redis-server <wp> Desactivar Redis (sin eliminar instancia)
crad-wordpress-mgr --check-performance <wp> Verificar estado de Redis