Cache er generelt en meget hurtig nøgle/værdi-lagringsmotor, hvor du kan gemme værdier (normalt serialiseret) med en forudbestemt nøgle, så du kan hente de lagrede værdier med den samme nøgle.
I forhold til MySQL vil du skrive din applikationskode på en sådan måde, at du tjekker for tilstedeværelsen af data i cachen, før du sender en anmodning til databasen. Hvis der blev fundet et match (der findes matchende nøgle), vil du så have adgang til de data, der er knyttet til nøglen. Målet er ikke at udstede en anmodning til den dyrere database, hvis det kan undgås.
Et eksempel (kun demonstrativt):
$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));
Tjek PHP-dokumenter på memcached for mere info er der nogle gode eksempler og kommentarer.