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.
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:
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; } } ?>
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.
; // lets see what we have print_r($aData); echo ''; 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 here to check what we have in memory'; } else { echo 'Seems APC not installed, please install it to perform tests'; } ?>
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.php
3. index2.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:
'
; // lets see what we have from memory print_r($aMemData); echo ''; echo 'Data from memory of object of CacheAPC class:
'
; print_r($aMemData2); echo ''; echo 'As you can see - all data read successfully, now lets remove data from memory and check results, click here to continue'; } else { echo 'Seems APC not installed, please install it to perform tests'; } ?>
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.
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:
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:
'
; // lets see what we have from memory print_r($aMemData); echo ''; echo 'Data from memory of object of CacheAPC class:
'
; print_r($aMemData2); echo ''; echo 'As you can see - all data successfully removed. Great !'; } else { echo 'Seems APC not installed, please install it to perform tests'; } ?>
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.
Nếu bạn gặp khó khăn, hãy comment tại đây để được giúp đỡ.