Introducción al Problema de Redis en Magento 2
Redis es una herramienta de almacenamiento en caché y base de datos en memoria muy utilizada en Magento 2 para mejorar el rendimiento del e-commerce. Sin embargo, cuando la memoria asignada a Redis se llena por completo, Magento comienza a mostrar errores críticos de conexión, lentitud extrema o el sitio web deja de responder por completo. Solucionar este inconveniente es vital para mantener la estabilidad de tu tienda online.
Causas Principales del Error de Caché Redis Llena
El fallo de saturación en Redis suele deberse a diversos factores comunes en entornos de producción:
- Asignación de memoria insuficiente en el archivo de configuración
redis.conf. - Ausencia de una política de expulsión de datos (
maxmemory-policy) adecuada. - Acumulación masiva de datos en la caché debido a la falta de limpieza periódica.
- Tráfico elevado combinado con un TTL (Time To Live) demasiado alto en los bloques de caché.
Método 1: Limpiar y Vaciar la Caché Redis Manualmente
Si tu tienda está inaccesible debido a que Redis ha alcanzado su límite máximo de memoria, la solución más rápida es vaciar las bases de datos de Redis mediante la terminal SSH.
- Conéctate a tu servidor mediante SSH con privilegios adecuados.
- Accede a la interfaz de comandos de Redis ejecutando el comando:
redis-cli - Si utilizas autenticación, introduce tu contraseña con:
AUTH tu_contraseña - Para vaciar la base de datos actual, ejecuta:
FLUSHDB - Si prefieres vaciar todas las bases de datos configuradas en Redis, utiliza:
FLUSHALL - Sal de la interfaz escribiendo:
exit
Método 2: Configurar la Política de Memoria Máxima (maxmemory-policy)
Para evitar que Redis vuelva a bloquearse cuando alcance el límite, debes configurar una política de eliminación automática de claves antiguas.
- Abre el archivo de configuración de Redis en tu servidor, generalmente ubicado en
/etc/redis/redis.conf. - Busca la directiva
maxmemoryy asígnale un límite acorde a los recursos de tu servidor (por ejemplo,maxmemory 2gb). - Busca la directiva
maxmemory-policyy cámbiala para que utilice el algoritmo LRU (Least Recently Used):maxmemory-policy allkeys-lru - Guarda los cambios en el archivo y reinicia el servicio de Redis ejecutando:
sudo systemctl restart redisosudo systemctl restart redis-server
Método 3: Optimizar la Configuración en env.php de Magento 2
También es recomendable revisar cómo Magento interactúa con Redis en el archivo de configuración global.
- Accede a la raíz de tu instalación de Magento 2 mediante FTP o SSH.
- Navega hasta la ruta
app/etc/env.php. - Localiza la sección correspondiente a
cacheysessionque configuran los servidores Redis. - Asegúrate de que los puertos y los prefijos de las bases de datos estén correctamente segmentados para evitar solapamientos y consumo excesivo de memoria.
- Limpia la caché de Magento ejecutando el comando:
bin/magento cache:clean