Nói chung, bộ nhớ cache là một công cụ lưu trữ khóa / giá trị rất nhanh, nơi bạn có thể lưu trữ các giá trị (thường được tuần tự hóa) bằng một khóa xác định trước, vì vậy bạn có thể truy xuất các giá trị được lưu trữ bằng cùng một khóa.
Liên quan đến MySQL, bạn sẽ viết mã ứng dụng của mình theo cách như vậy, bạn sẽ kiểm tra sự hiện diện của dữ liệu trong bộ nhớ cache, trước khi đưa ra yêu cầu đến cơ sở dữ liệu. Nếu tìm thấy một kết quả phù hợp (khóa phù hợp tồn tại), thì bạn sẽ có quyền truy cập vào dữ liệu được liên kết với khóa đó. Mục đích là không đưa ra yêu cầu đối với cơ sở dữ liệu tốn kém hơn nếu có thể tránh được.
Một ví dụ (chỉ mang tính minh họa):
$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));
Xem tài liệu PHP trên memcached để biết thêm thông tin, có một số ví dụ và nhận xét tốt.