Mysql
 sql >> Database >  >> RDS >> Mysql

Come funziona memcache con MySQL?

La cache, in generale, è un motore di archiviazione chiave/valore molto veloce in cui puoi archiviare valori (solitamente serializzati) da una chiave predeterminata, in modo da poter recuperare i valori archiviati dalla stessa chiave.

In relazione a MySQL, dovresti scrivere il codice dell'applicazione in modo tale da verificare la presenza di dati nella cache, prima di inviare una richiesta al database. Se è stata trovata una corrispondenza (esiste una chiave di corrispondenza), avresti quindi accesso ai dati associati alla chiave. L'obiettivo è non inviare una richiesta al database più costoso se può essere evitato.

Un esempio (solo dimostrativo):

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

Consulta i documenti PHP su memcached per ulteriori informazioni, ci sono alcuni buoni esempi e commenti.