Signatur
Beschreibung
apcu_cache_info() gibt ein assoziatives Array mit Informationen über den aktuellen Zustand des APCu-Caches zurück. Dazu gehören Angaben über die Speichernutzung, Trefferquoten (Hits/Misses), die Anzahl der gecachten Einträge sowie — sofern $limited nicht auf true gesetzt ist — eine vollständige Liste aller im Cache gespeicherten Schlüssel inklusive Metadaten wie TTL und Erstellungszeit.
Der Parameter $limited ist besonders nützlich, wenn nur allgemeine Statistiken (z. B. für ein Monitoring-Dashboard) benötigt werden, ohne den Overhead des Auflistens aller Cache-Einträge zu erzeugen. In Produktionsumgebungen mit vielen gecachten Einträgen sollte daher true bevorzugt werden.
Typische Anwendungsfälle sind Administrationsoberflächen, Performance-Monitoring, Debugging von Cache-Problemen sowie die Überprüfung der Speicherauslastung des APCu-Caches. Die Funktion ist ausschließlich im PHP-CLI- oder Web-Kontext verfügbar, in dem APCu geladen und aktiv ist.
Zu beachten ist, dass apcu_cache_info() im CLI-Modus nur den Cache der aktuellen CLI-Instanz widerspiegelt, der unabhängig vom Web-Server-Cache ist.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $limited | bool | false | Wenn true, wird die Liste der einzelnen Cache-Einträge (cache_list) weggelassen. Nur allgemeine Statistiken werden zurückgegeben. Empfehlenswert bei großen Caches, um Speicher und CPU zu schonen. |
Rückgabewert
num_slots (Anzahl der Hash-Slots), ttl, num_hits, num_misses, num_inserts, num_entries, expunges, mem_size sowie bei $limited = false auch das Array cache_list mit den einzelnen Cache-Einträgen. Gibt false zurück, wenn APCu nicht aktiviert ist oder ein Fehler auftritt.Beispiele
Allgemeine Cache-Statistiken ausgeben
<?php
// APCu-Cache mit einigen Einträgen befüllen
apcu_store('user_42', ['name' => 'Anna', 'role' => 'admin'], 300);
apcu_store('config_lang', 'de', 600);
// Nur allgemeine Statistiken abrufen (ohne Eintrags-Liste)
$info = apcu_cache_info(true);
if ($info !== false) {
echo 'Cache-Treffer: ' . $info['num_hits'] . PHP_EOL;
echo 'Cache-Fehlschläge: ' . $info['num_misses'] . PHP_EOL;
echo 'Einträge im Cache: ' . $info['num_entries'] . PHP_EOL;
echo 'Speichernutzung: ' . round($info['mem_size'] / 1024, 2) . ' KB' . PHP_EOL;
} else {
echo 'APCu ist nicht verfügbar.' . PHP_EOL;
}
Alle gecachten Einträge auflisten
<?php
apcu_store('session_token_abc', 'xyz123', 120);
apcu_store('rate_limit_user_7', 42, 60);
// Vollständige Info inkl. Eintrags-Liste abrufen
$info = apcu_cache_info(false);
if (!empty($info['cache_list'])) {
echo 'Gecachte Einträge:' . PHP_EOL;
foreach ($info['cache_list'] as $entry) {
echo ' - Schlüssel: ' . $entry['info']
. ' | TTL: ' . $entry['ttl']
. ' | Größe: ' . $entry['mem_size'] . ' Byte'
. PHP_EOL;
}
} else {
echo 'Keine Einträge im Cache oder APCu nicht verfügbar.' . PHP_EOL;
}
// Wichtig · Fallstricke
CLI vs. Web-Server: APCu verwaltet im CLI-Modus einen eigenen, von Web-Prozessen getrennten Cache. Ein Aufruf von apcu_cache_info() im CLI zeigt daher nicht den Cache des laufenden Web-Servers und umgekehrt.
Sicherheit: Die Ausgabe von apcu_cache_info() kann sensible Schlüsselnamen oder interne Anwendungsdetails preisgeben. Administrationsskripte, die diese Funktion nutzen, sollten immer durch eine Authentifizierung geschützt sein und niemals öffentlich zugänglich sein.
Performance: Der Aufruf ohne $limited = true bei sehr vielen Cache-Einträgen kann nennenswerten Speicher verbrauchen, da die gesamte cache_list im PHP-Speicher aufgebaut wird. Für reines Monitoring stets true übergeben.