# TerraFlow CMS Cache Configuration

## Übersicht

TerraFlow CMS unterstützt sowohl **Filesystem-Cache** (Standard) als auch **Redis-Cache** (optional) für optimale Performance.

## Standard-Konfiguration (Filesystem)

**Keine zusätzlichen Abhängigkeiten erforderlich!**

Das System verwendet standardmäßig den Filesystem-Cache, der:
- ✅ Keine externen Dienste benötigt
- ✅ Sofort einsatzbereit ist
- ✅ Für die meisten Anwendungen ausreichend ist
- ✅ Einfach zu warten ist

## Redis-Cache aktivieren (Optional)

Für bessere Performance in Produktionsumgebungen können Sie Redis aktivieren:

### 1. Redis installieren

**Ubuntu/Debian:**
```bash
sudo apt update
sudo apt install redis-server php-redis
sudo systemctl start redis-server
sudo systemctl enable redis-server
```

**Docker:**
```bash
docker run -d --name redis -p 6379:6379 redis:alpine
```

### 2. Umgebungsvariable setzen

In Ihrer `.env` Datei:
```env
# Redis aktivieren
USE_REDIS_CACHE=true
REDIS_URL=redis://localhost:6379
```

### 3. Cache leeren

```bash
php bin/console cache:clear
```

## Cache-Konfiguration

### Standard (Filesystem)
```yaml
# config/packages/cache.yaml
framework:
    cache:
        app: cache.adapter.filesystem
        pools:
            terraflow.cache.pages:
                adapter: cache.adapter.filesystem
                tags: false
```

### Mit Redis
```yaml
# config/packages/cache_optional.yaml (optional)
framework:
    cache:
        app: cache.adapter.redis
        default_redis_provider: redis://localhost:6379
        pools:
            terraflow.cache.pages:
                adapter: cache.adapter.redis
                tags: true
```

## Performance-Vergleich

| Feature | Filesystem | Redis |
|---------|------------|-------|
| **Setup** | ✅ Sofort | ⚠️ Installation nötig |
| **Dependencies** | ✅ Keine | ❌ Redis-Server |
| **Performance** | ⚠️ Gut | ✅ Sehr gut |
| **Tag-Support** | ❌ Nein | ✅ Ja |
| **Skalierbarkeit** | ⚠️ Begrenzt | ✅ Hoch |
| **Memory Usage** | ✅ Niedrig | ⚠️ Höher |

## Cache-Typen

Das System verwendet verschiedene Cache-Pools:

- **Pages**: Seiteninhalte (1 Stunde)
- **Media**: Medien und Assets (24 Stunden)
- **System**: Systemeinstellungen (30 Minuten)
- **Plugins**: Plugin-Daten (2 Stunden)
- **Navigation**: Navigationsmenüs (30 Minuten)
- **Sessions**: Benutzersitzungen (1 Stunde)
- **API**: API-Antworten (15 Minuten)

## Performance-Monitoring

Überprüfen Sie die Cache-Performance:

```bash
php bin/console terraflow:performance:check
```

Dieser Command zeigt:
- Cache-Typ (Filesystem/Redis)
- Performance-Metriken
- Verbindungsstatus
- Empfohlene Optimierungen

## Empfehlungen

### Für Entwicklung
- **Filesystem-Cache** verwenden
- Einfach und schnell eingerichtet

### Für Produktion
- **Redis-Cache** aktivieren
- Bessere Performance und Skalierbarkeit
- Tag-basierte Cache-Invalidierung

### Für kleine Projekte
- **Filesystem-Cache** ist ausreichend
- Keine zusätzlichen Server-Kosten

### Für große Projekte
- **Redis-Cache** empfohlen
- Bessere Performance bei hohem Traffic
- Unterstützung für mehrere Server
