Mấy hôm trước mình đã có bài chia sẻ hướng dẫn mọi người sử dụng cache APC để tối ưu hóa website (ai chưa đọc hoặc cần hướng dẫn cài đặt thì đọc ở đây). Trong bài viết này mình sẽ tiếp tục hướng dẫn bạn sử dụng APC caching một cách hiệu quả và lần này chúng ta sử dụng APC caching với PHP.
1. apc.caching.php
Bạn tiến hành xây dựng một class để điều khiển caching dựa trên nền tảng là kiến thức PHP của bạn như sau:
Trong class này bạn xây dựng 3 phương thức quan trọng là set, get và delete dữ liệu cache thông qua các function getData, setData và delData.PHP:<?
class CacheAPC {
var $iTtl = 600; // Time To Live
var $bEnabled = false; // APC enabled?
// constructor
function CacheAPC() {
$this->bEnabled = extension_loaded('apc');
}
// get data from memory
function getData($sKey) {
$bRes = false;
$vData = apc_fetch($sKey, $bRes);
return ($bRes) ? $vData :null;
}
// save data to memory
function setData($sKey, $vData) {
return apc_store($sKey, $vData, $this->iTtl);
}
// delete data from memory
function delData($sKey) {
return (apc_exists($sKey)) ? apc_delete($sKey) : true;
}
}
?>
Giờ chúng ta sẽ xem sử dụng chúng như thế nào:
2. index.php
Trong file này chúng ta lưu lại 2 đối tượng :1 mảng $aData và một object $oCache, giờ hãy xem chúng thông qua file index2.phpPHP:<?php
$aData = array(
'name' => 'table',
'color' => 'brown',
'size' => array(
'x' => 200,
'y' => 120,
'z' => 150,
),
'strength' => 10,
);
require_once('classes/apc.caching.php');
$oCache = new CacheAPC();
echo 'Initial data: <pre>'; // lets see what we have
print_r($aData);
echo '</pre>';
if ($oCache->bEnabled) { // if APC enabled
$oCache->setData('my_object', $aData); // saving data to memory
$oCache->setData('our_class_object', $oCache); // saving object of our class into memory too
echo 'Now we saved all in memory, click <a href="ndex2.php">here</a> to check what we have in memory';
} else {
echo 'Seems APC not installed, please install it to perform tests';
}
?>
3. index2.php
Với file index2.php bạn có thể thấy được toàn bộ dữ liệu đã được lưu xuống APC cache như thế nào và việc truy xuất dữ liệu, lấy chúng ta ra sao. Giờ chúng ta sẽ đi tiếp một ví dụ thứ 3.PHP:<?php
require_once('classes/apc.caching.php');
$oCache = new CacheAPC();
if ($oCache->bEnabled) { // if APC enabled
$aMemData = $oCache->getData('my_object'); // getting data from memory
$aMemData2 = $oCache->getData('our_class_object'); // getting data from memory about our class
echo 'Data from memory: <pre>'; // lets see what we have from memory
print_r($aMemData);
echo '</pre>';
echo 'Data from memory of object of CacheAPC class: <pre>';
print_r($aMemData2);
echo '</pre>';
echo 'As you can see - all data read successfully, now lets remove data from memory and check results, click <a href="index3.php">here</a> to continue';
} else {
echo 'Seems APC not installed, please install it to perform tests';
}
?>
4. index3.php
Trong ví dụ này chúng ta thực hiện công việc xóa cache khi không có nhu cầu sử dụng nữa:
Bạn thấy đấy, cách sử dụng APC cache khá đơn giản và dễ dàng thông qua một class đươc viết ở đầu bài. Chỉ bằng cách này bạn có thể tiết kiệm được rất nhiều vùng nhớ và tốc độ tải trang web bằng cách giảm tải số truy vấn và xử lý dữ liệu sau khi cài đặt APC cache.PHP:<?php
require_once('classes/apc.caching.php');
$oCache = new CacheAPC();
if ($oCache->bEnabled) { // if APC enabled
$oCache->delData('my_object'); // removing data from memory
$oCache->delData('our_class_object'); // removing data from memory
$aMemData = $oCache->getData('my_object'); // lets try to get data again
$aMemData2 = $oCache->getData('our_class_object');
echo 'Data from memory: <pre>'; // lets see what we have from memory
print_r($aMemData);
echo '</pre>';
echo 'Data from memory of object of CacheAPC class: <pre>';
print_r($aMemData2);
echo '</pre>';
echo 'As you can see - all data successfully removed. Great !';
} else {
echo 'Seems APC not installed, please install it to perform tests';
}
?>
Nếu bạn gặp khó khăn, hãy comment tại đây để được giúp đỡ.
Tutorial Sử dụng APC Caching với PHP
Thảo luận trong 'Lập trình web với PHP' bắt đầu bởi babyinternet, 26/11/16.
Bình luận
Thảo luận trong 'Lập trình web với PHP' bắt đầu bởi babyinternet, 26/11/16.