# Redis: Rotura de WordPress por error de Redis en Directadmin

## Escenario

- Sitio WordPress configurado con Redis Object Cache.
- El sitio deja de funcionar mostrando el mensaje *Error Establishing a Redis Connection*

Al ejecutar `systemctl`, se observa que:

- `redis-server` (Redis principal) está activo.
- `redis-rspamd` y `redis@user_a` están fallando.

## Análisis

Buscamos informacion sobre el estadod el servicio

```bash
systemctl | grep redis
● redis-rspamd.service      loaded failed failed    Multi-user redis persistent key-value database
  redis-server.service      loaded active running   Advanced key-value store
  redis@user.service        loaded active running   Multi-user redis persistent key-value database
  system-redis.slice        loaded active active    Slice /system/redis
```

## Diagnóstico

Los registros del sistema (journalctl) muestran:

```bash
cat /var/log/syslog| grep -i redis
...
2025-05-29T06:35:57.647681+02:00 dar redis-server[1064]: 1064:M 29 May 2025 06:35:57.647 * Server initialized
2025-05-29T06:35:57.648969+02:00 dar redis-server[1064]: 1064:M 29 May 2025 06:35:57.648 # Can't handle RDB format version 12
2025-05-29T06:35:57.649027+02:00 dar redis-server[1064]: 1064:M 29 May 2025 06:35:57.648 # Fatal error loading the DB, check server logs. Exiting.
...
```

> Can't handle RDB format version 12
> Fatal error loading the DB, check server logs. Exiting.

Esto indica que Redis no puede leer el archivo de base de datos dump.rdb. Las causas habituales son:
1. El archivo fue generado por una versión de Redis diferente (por ejemplo, tras un downgrade de versión en una actualización de DirectAdmin).
2. El archivo se ha corrompido, posiblemente tras un reinicio forzado o caída del sistema.

## Solución

### Previa para liberar al wordpress del problema

Deberas eliminar el fichero de wordpress `object-cache.php`

```
rm -f /home/USER/domains/DOMAIN.TLD/public_html/wp-content/object-cache.php
```

### Eliminar los archivos dump.rdb afectados para forzar su regeneración limpia:

```bash
rm -f /var/lib/rspamd/.redis/db/dump.rdb
rm -f /home/USER/.redis/db/dump.rdb
```

### Reiniciar los servicios Redis afectados:

```bash
systemctl restart redis-rspamd
systemctl restart redis@USER
```

## Consideraciones

- Esta operación elimina los datos almacenados en caché, pero no afecta a los datos persistentes del sitio WordPress.
- Redis volverá a crear los datos necesarios durante el uso normal del sistema.
- Si Redis estaba siendo utilizado para sesiones, estadísticas u otras funciones de estado, esa información se perderá.

## Verificación

Si no conoces la ubicación del archivo `dump.rdb`, puedes buscarlo con:

```bash
locate dump.rdb
```

> Es necesario tener mlocate o plocate instalado y la base de datos actualizada con updatedb.

##### Aviso
Esta documentación y su contenido, no implica que funcione en tu caso o determinados casos. 
También implica que tienes conocimientos sobre lo que trata, y que en cualquier caso tienes copias de seguridad.
El contenido el contenido se entrega, tal y como está, sin que ello implique ningún obligación ni responsabilidad por parte de [Castris](https://castris.com)

Si necesitas soporte profesional puedes contratar con Castris [soporte profesional](https://intranet.castris.com/store/soporte-profesional).