Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie funktioniert Memcache mit MySQL?

Cache ist im Allgemeinen eine sehr schnelle Schlüssel/Wert-Speicher-Engine, in der Sie Werte (normalerweise serialisiert) mit einem vorgegebenen Schlüssel speichern können, sodass Sie die gespeicherten Werte mit demselben Schlüssel abrufen können.

In Bezug auf MySQL würden Sie Ihren Anwendungscode so schreiben, dass Sie das Vorhandensein von Daten im Cache prüfen, bevor Sie eine Anfrage an die Datenbank senden. Wenn eine Übereinstimmung gefunden wurde (ein übereinstimmender Schlüssel existiert), hätten Sie Zugriff auf die mit dem Schlüssel verknüpften Daten. Das Ziel besteht darin, keine Anfrage an die teurere Datenbank zu stellen, wenn es sich vermeiden lässt.

Ein Beispiel (nur zur Veranschaulichung):

$cache = new Memcached();

$cache->addServer('servername', 11211);

$myCacheKey = 'my_cache_key';

$row = $cache->get($myCacheKey);

if (!$row) {

    // Issue painful query to mysql
    $sql = "SELECT * FROM table WHERE id = :id";

    $dbo->prepare($sql);
    $stmt->bindValue(':id', $someId, PDO::PARAM_INT);

    $row = $stmt->fetch(PDO::FETCH_OBJ);

    $cache->set($myCacheKey, serialize($row));
}

// Now I have access to $row, where I can do what I need to
// And for subsequent calls, the data will be pulled from cache and skip
// the query altogether
var_dump(unserialize($row));

Sehen Sie sich die PHP-Dokumentation auf memcached an Für weitere Informationen gibt es einige gute Beispiele und Kommentare.