Start · Sprachen · PHP · Referenz · memcache_get_version

memcache_get_version

Funktion

Liefert die Versionszeichenkette des verbundenen Memcache-Servers zurück.

seit PHP 2.0.0 Kategorie: db

Signatur

memcache_get_version(Memcache $memcache): string|false

Beschreibung

memcache_get_version() fragt den verbundenen Memcache-Server nach seiner Softwareversion und gibt diese als Zeichenkette zurück. Die Funktion ist die prozedurale Entsprechung der objektorientierten Methode Memcache::getVersion().

Die Versionsinformation ist nützlich, um sicherzustellen, dass der Server eine bestimmte Mindestversion unterstützt, bevor versionsabhängige Features (z. B. CAS-Operationen) verwendet werden. Sie kann außerdem im Rahmen von Diagnose- und Monitoring-Routinen eingesetzt werden, um den Status der Cache-Infrastruktur zu dokumentieren.

Die Funktion gibt false zurück, wenn keine Verbindung zum Server besteht oder der Server nicht antwortet. Es empfiehlt sich daher, den Rückgabewert stets auf false zu prüfen, bevor er weiterverarbeitet wird.

Hinweis: Die PECL-Erweiterung Memcache (nicht zu verwechseln mit Memcached) muss installiert und aktiviert sein. In modernen PHP-Umgebungen wird häufig die neuere Memcached-Erweiterung bevorzugt.

Parameter

Name Typ Default Beschreibung
$memcache Pflicht Memcache Ein aktives Memcache-Verbindungsobjekt, das zuvor mit memcache_connect() oder memcache_pconnect() erstellt wurde.

Rückgabewert

Typ
string|false
Beschreibung
Gibt die Versionszeichenkette des Memcache-Servers zurück (z. B. "1.4.20"). Im Fehlerfall oder bei fehlender Verbindung wird false zurückgegeben.

Beispiele

Serverversion abfragen und ausgeben

<?php
// Verbindung zum Memcache-Server herstellen
$memcache = memcache_connect('localhost', 11211);

if ($memcache === false) {
    echo 'Verbindung zum Memcache-Server fehlgeschlagen.';
    exit;
}

// Serverversion abrufen
$version = memcache_get_version($memcache);

if ($version === false) {
    echo 'Version konnte nicht ermittelt werden.';
} else {
    echo 'Memcache-Serverversion: ' . $version;
}

memcache_close($memcache);
Memcache-Serverversion: 1.4.20

Versionsprüfung vor Nutzung eines Features

<?php
$memcache = memcache_connect('127.0.0.1', 11211);

$version = memcache_get_version($memcache);

if ($version !== false) {
    $parts = explode('.', $version);
    $major = (int)$parts[0];
    $minor = (int)($parts[1] ?? 0);

    if ($major > 1 || ($major === 1 && $minor >= 3)) {
        echo 'CAS-Unterstützung wahrscheinlich verfügbar (Version >= 1.3).';
    } else {
        echo 'Serverversion zu alt, CAS möglicherweise nicht unterstützt.';
    }
} else {
    echo 'Versionsabfrage fehlgeschlagen.';
}

memcache_close($memcache);
CAS-Unterstützung wahrscheinlich verfügbar (Version >= 1.3).

// Wichtig · Fallstricke

Erweiterungsverwechslung: PHP bietet zwei separate Memcache-Erweiterungen: memcache (ältere PECL-Erweiterung, prozedurale und OOP-API) und memcached (neuere Erweiterung auf Basis von libmemcached). memcache_get_version() gehört zur älteren memcache-Erweiterung. Das Äquivalent in memcached ist Memcached::getVersion().

In Produktivumgebungen sollte die Versionsabfrage nicht im kritischen Anfragepfad erfolgen, da sie eine zusätzliche Netzwerkanfrage an den Memcache-Server auslöst. Besser ist es, die Version einmalig beim Applikationsstart zu prüfen und das Ergebnis zu cachen.