Cache, secara umum, adalah mesin penyimpanan kunci/nilai yang sangat cepat tempat Anda dapat menyimpan nilai (biasanya serial) dengan kunci yang telah ditentukan, sehingga Anda dapat mengambil nilai yang disimpan dengan kunci yang sama.
Sehubungan dengan MySQL, Anda akan menulis kode aplikasi Anda sedemikian rupa, sehingga Anda akan memeriksa keberadaan data dalam cache, sebelum mengeluarkan permintaan ke database. Jika kecocokan ditemukan (ada kunci yang cocok), Anda akan memiliki akses ke data yang terkait dengan kunci tersebut. Tujuannya adalah untuk tidak mengeluarkan permintaan ke database yang lebih mahal jika dapat dihindari.
Contoh (hanya demonstratif):
$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));
Lihat dokumen PHP di memcached untuk info lebih lanjut, ada beberapa contoh dan komentar yang bagus.