Start · Sprachen · PHP · Referenz · wincache_ucache_info

wincache_ucache_info

Funktion

Ruft Informationen und Statistiken zu den im WinCache User-Cache gespeicherten Daten ab.

seit PHP 1.1.0 Kategorie: misc

Signatur

wincache_ucache_info(bool $summaryonly = false, string $key = null): array|false

Beschreibung

wincache_ucache_info() gibt ein assoziatives Array mit Informationen über den aktuellen Zustand des WinCache User-Cache zurück. Diese Funktion ist ausschließlich unter Windows verfügbar und setzt die WinCache-Erweiterung voraus.

Im Standardmodus (ohne Parameter) liefert die Funktion eine vollständige Übersicht über alle gecachten Einträge, einschließlich Schlüsselname, Größe, Trefferanzahl, Ablaufzeit sowie allgemeiner Cache-Statistiken wie Gesamtgröße, Anzahl der Einträge, Trefferrate und Fehlerrate. Mit $summaryonly = true werden nur die zusammenfassenden Statistiken zurückgegeben, ohne die Liste der einzelnen Einträge – das ist bei großen Caches deutlich performanter.

Wird ein konkreter $key angegeben, werden nur die Informationen zu diesem einen Eintrag zurückgegeben. Das ist nützlich, um gezielt den Status eines bestimmten Cache-Schlüssels zu prüfen, beispielsweise für Debugging- oder Monitoring-Zwecke.

Die Funktion eignet sich gut für Diagnose-Skripte, Admin-Panels oder Performance-Monitoring-Tools, um den Zustand des User-Caches zu überwachen und Cache-Effizienz zu beurteilen.

Parameter

Name Typ Default Beschreibung
$summaryonly bool false Wenn true, enthält das Ergebnis nur die zusammenfassenden Cache-Statistiken ohne die Liste der einzelnen gecachten Einträge. Empfehlenswert bei großen Caches, um Overhead zu vermeiden.
$key string null Optionaler Schlüsselname. Wenn angegeben, werden nur die Informationen zum Cache-Eintrag mit diesem Schlüssel zurückgegeben. Bei null werden Informationen zu allen Einträgen (bzw. nur die Zusammenfassung, falls $summaryonly = true) zurückgegeben.

Rückgabewert

Typ
array|false
Beschreibung
Gibt bei Erfolg ein assoziatives Array mit Cache-Informationen zurück. Das Array enthält unter anderem die Schlüssel ucache_total_count, ucache_total_size, ucache_hit_count, ucache_miss_count, ucache_memory_total, ucache_memory_free sowie das Unter-Array ucache_entries mit Details zu den einzelnen Einträgen. Gibt false zurück, wenn WinCache nicht aktiv ist oder ein Fehler aufgetreten ist.

Beispiele

Vollständige Cache-Informationen abrufen

<?php
// Einige Werte in den User-Cache schreiben
wincache_ucache_set('benutzer_1', ['name' => 'Alice', 'rolle' => 'admin'], 3600);
wincache_ucache_set('benutzer_2', ['name' => 'Bob',   'rolle' => 'user'],  3600);

// Alle Cache-Informationen abrufen
$info = wincache_ucache_info();

if ($info !== false) {
    echo 'Einträge im Cache: ' . $info['ucache_total_count'] . PHP_EOL;
    echo 'Cache-Treffer: '     . $info['ucache_hit_count']   . PHP_EOL;
    echo 'Cache-Fehler: '      . $info['ucache_miss_count']  . PHP_EOL;

    foreach ($info['ucache_entries'] as $entry) {
        echo 'Schlüssel: ' . $entry['key_name']
           . ' | Größe: '  . $entry['value_size'] . ' Bytes'
           . ' | Treffer: ' . $entry['use_time']  . PHP_EOL;
    }
} else {
    echo 'WinCache ist nicht verfügbar.';
}
Einträge im Cache: 2 Cache-Treffer: 0 Cache-Fehler: 0 Schlüssel: benutzer_1 | Größe: 56 Bytes | Treffer: 0 Schlüssel: benutzer_2 | Größe: 54 Bytes | Treffer: 0

Nur Zusammenfassung und gezielter Schlüssel-Lookup

<?php
wincache_ucache_set('config_db', ['host' => 'localhost', 'port' => 3306], 7200);

// Nur Statistiken, keine Eintrags-Liste (performanter bei großem Cache)
$summary = wincache_ucache_info(true);
if ($summary !== false) {
    $gesamtgroesse = round($summary['ucache_total_size'] / 1024, 2);
    echo 'Cache-Gesamtgröße: ' . $gesamtgroesse . ' KB' . PHP_EOL;
    echo 'Gesamtanzahl Einträge: ' . $summary['ucache_total_count'] . PHP_EOL;
}

// Informationen zu einem bestimmten Schlüssel abrufen
$keyInfo = wincache_ucache_info(false, 'config_db');
if ($keyInfo !== false && !empty($keyInfo['ucache_entries'])) {
    $entry = $keyInfo['ucache_entries'][0];
    echo 'TTL verbleibend: ' . $entry['ttl_seconds'] . ' Sekunden' . PHP_EOL;
}
Cache-Gesamtgröße: 0.12 KB Gesamtanzahl Einträge: 1 TTL verbleibend: 7198 Sekunden

// Wichtig · Fallstricke

Plattformbeschränkung: wincache_ucache_info() ist ausschließlich unter Windows verfügbar und erfordert die installierte und aktivierte WinCache-Erweiterung für PHP (IIS). Auf Linux/macOS-Systemen steht die Funktion nicht zur Verfügung.

Sichtbarkeit: Der WinCache User-Cache ist prozess- bzw. sitzungsübergreifend, aber der sichtbare Inhalt hängt von der Konfigurationseinstellung wincache.ucenabled und der Gültigkeitsdauer der Einträge ab. In einer CLI-Umgebung ist der Cache von dem des Webservers getrennt.

Performance: Bei sehr vielen gecachten Einträgen sollte $summaryonly = true bevorzugt werden, um unnötig große Datenmengen zu vermeiden und die Ausführungszeit des Diagnose-Skripts gering zu halten.