Introducción al Problema de Sesión Redis en Magento 2
Redis es ampliamente utilizado en Magento 2 para gestionar la caché y las sesiones de los usuarios debido a su alta velocidad y rendimiento. Sin embargo, cuando el servicio se detiene, se corrompen los datos o la configuración del archivo env.php falla, los usuarios experimentan errores críticos al intentar iniciar sesión o navegar por el e-commerce. En este artículo te mostramos cómo diagnosticar y resolver este problema de manera definitiva.
Principales Causas del Error de Redis
- El servicio de Redis se ha detenido o se encuentra caído en el servidor.
- Límite de memoria RAM alcanzado en el servidor Redis (OOM - Out of Memory).
- Credenciales o puerto de conexión incorrectos en el archivo
app/etc/env.php. - Bloqueos en la base de datos asignada para las sesiones.
Método 1: Verificar y Reiniciar el Servicio Redis
El primer paso consiste en comprobar si el demonio de Redis está corriendo correctamente en tu servidor VPS o dedicado mediante la terminal SSH.
- Conéctate a tu servidor mediante SSH con privilegios de administrador.
- Ejecuta el siguiente comando para verificar el estado del servicio:
sudo systemctl status redis - Si el servicio está detenido, inicia o reinicia Redis con el comando:
sudo systemctl restart redis - Comprueba que el servicio arranca automáticamente en cada reinicio del sistema ejecutando:
sudo systemctl enable redis
Método 2: Revisar la Configuración en el Archivo env.php
Si Redis está activo pero Magento sigue sin conectar, es probable que los parámetros de configuración en el archivo de entorno no coincidan con los de tu servidor.
- Accede a la raíz de tu instalación de Magento 2 y abre el archivo de configuración:
nano app/etc/env.php - Busca la sección correspondiente a
sessiony asegúrate de que los valores dehost,portydatabasesean correctos. Ejemplo:'session' => [ 'save' => 'redis', 'redis' => [ 'host' => '127.0.0.1', 'port' => '6379', 'password' => '', 'timeout' => '2', 'database' => '2' ] ] - Guarda los cambios y limpia la caché de Magento ejecutando:
bin/magento cache:clean
Método 3: Limpiar Sesiones Atascadas en Redis
A veces, las sesiones corruptas bloquean el acceso. Puedes vaciar la base de datos de Redis destinada exclusivamente a las sesiones (asegúrate de no borrar la caché principal si comparten instancia).
- Conéctate a la interfaz de comandos de Redis:
redis-cli - Selecciona la base de datos de sesiones (por ejemplo, la 2 configurada previamente):
SELECT 2 - Elimina todas las claves de esa base de datos de forma segura:
FLUSHDB - Sal de la consola de Redis escribiendo:
exit