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.

By babyinternet on 26/11/16 lúc 14:33
  1. babyinternet

    babyinternet Administrator

    Tham gia ngày:
    4/7/08
    Bài viết:
    4,653
    Đã được thích:
    1,567
    Điểm thành tích:
    113
    Nơi ở:
    [}{]e[][]
    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.
    [​IMG]
    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:

    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;
    }
    }
    ?>
    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 delData.

    Giờ chúng ta sẽ xem sử dụng chúng như thế nào:

    2. index.php

    PHP:
    <?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';
    }
    ?>
    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:
    <?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';
    }
    ?>
    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:
    <?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';
    }
    ?>
    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 đỡ.
     

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.

Chia sẻ trang này