sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo funciona Memcache con MySQL?

La memoria caché, en general, es un motor de almacenamiento de clave/valor muy rápido en el que puede almacenar valores (generalmente serializados) mediante una clave predeterminada, de modo que puede recuperar los valores almacenados mediante la misma clave.

En relación con MySQL, escribiría el código de su aplicación de tal manera que verificaría la presencia de datos en el caché, antes de enviar una solicitud a la base de datos. Si se encuentra una coincidencia (existe una clave coincidente), tendrá acceso a los datos asociados a la clave. El objetivo es no enviar una solicitud a la base de datos más costosa si se puede evitar.

Un ejemplo (solo demostrativo):

$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));

Consulte los documentos de PHP en memcached para obtener más información, hay algunos buenos ejemplos y comentarios.