缓存,一般来说,是一个非常快速的键/值存储引擎,您可以通过预定的键存储值(通常是序列化的),因此您可以通过相同的键检索存储的值。
对于 MySQL,您将编写应用程序代码,即在向数据库发出请求之前检查缓存中是否存在数据。如果找到匹配项(存在匹配键),您就可以访问与该键关联的数据。如果可以避免,目标是不向成本更高的数据库发出请求。
一个示例(仅用于演示):
$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));
查看memcached上的 PHP 文档以获取更多信息,这里有一些很好的示例和评论。