欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

PHP缓存库phpFastCache

程序员文章站 2022-03-30 10:13:25
...

phpFastCache是一个开源的PHP 缓存 库,只提供一个简单的PHP文件,可方便集成到已有项目,支持多种 缓存 方法,包括:apc, memcache, memcached, wincache, files, pdo and mpdo。可通过简单的API来定义 缓存 的有效时间。 减少数据库查询 ? php // In your

phpFastCache是一个开源的PHP缓存库,只提供一个简单的PHP文件,可方便集成到已有项目,支持多种缓存方法,包括:apc, memcache, memcached, wincache, files, pdo and mpdo。可通过简单的API来定义缓存的有效时间。

减少数据库查询

php
    // In your config file
    include("phpfastcache/phpfastcache.php");
    phpFastCache::setup("storage","auto");

    // phpFastCache support "apc", "memcache", "memcached", "wincache" ,"files", "sqlite" and "xcache"
    // You don't need to change your code when you change your caching system. Or simple keep it auto
    $cache = phpFastCache();

    // In your Class, Functions, PHP Pages
    // try to get from Cache first. product_page = YOUR Identity Keyword
    $products = $cache->get("product_page");

    if($products == null) {
        $products = YOUR DB QUERIES || GET_PRODUCTS_FUNCTION;
        // set products in to cache in 600 seconds = 10 minutes
        $cache->set("product_page", $products,600);
    }

    // Output Your Contents $products HERE

提高cURL和API调用性能

php
    include("phpfastcache/phpfastcache.php");

    $cache = phpFastCache("memcached");

    // try to get from Cache first.
    $results = $cache->get("identity_keyword")

    if($results == null) {
        $results = cURL->get("http://www.youtube.com/api/json/url/keyword/page");
        // Write to Cache Save API Calls next time
        $cache->set("identity_keyword", $results, 3600*24);
    }

    foreach($results as $video) {
        // Output Your Contents HERE
    }


全页缓存

php
    // use Files Cache for Whole Page / Widget

    // keyword = Webpage_URL
    $keyword_webpage = md5($_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].$_SERVER['QUERY_STRING']);
    $html = __c("files")->get($keyword_webpage);

    if($html == null) {
        ob_start();
        /*
            ALL OF YOUR CODE GO HERE
            RENDER YOUR PAGE, DB QUERY, WHATEVER
        */

        // GET HTML WEBPAGE
        $html = ob_get_contents();
        // Save to Cache 30 minutes
        __c("files")->set($keyword_webpage,$html, 1800);
    }

    echo $html;


挂件缓存

php
    // use Files Cache for Whole Page / Widget
    $cache = phpFastCache("files");

    $html = $cache->widget_1;

    if($html == null) {
        $html = Render Your Page || Widget || "Hello World";
        // Save to Cache 30 minutes
        $cache->widget_1 = array($html, 1800);
    }

    echo or return your $html;


同时使用多种缓存

php
    // in your config files
    include("phpfastcache/phpfastcache.php");
    // auto | memcache | files ...etc. Will be default for $cache = __c();
    phpFastCache::$storage = "auto";

    $cache1 = phpFastCache();

    $cache2 = __c("memcache");
    $server = array(array("127.0.0.1",11211,100), array("128.5.1.3",11215,80));
    $cache2->option("server", $server);

    $cache3 = new phpFastCache("apc");

    // How to Write?
    $cache1->set("keyword1", "string|number|array|object", 300);
    $cache2->keyword2 = array("something here", 600);
    __c()->keyword3 = array("array|object", 3600*24);

    // How to Read?
    $data = $cache1->get("keyword1");
    $data = $cache2->keyword2;
    $data = __c()->keyword3;
    $data = __c()->get("keyword4");

    // Free to Travel between any caching methods

    $cache1 = phpFastCache("files");
    $cache1->set("keyword1", $value, $time);
    $cache1->memcache->set("keyword1", $value, $time);
    $cache1->apc->set("whatever", $value, 300);

    $cache2 = __c("apc");
    $cache2->keyword1 = array("so cool", 300);
    $cache2->files->keyword1 = array("Oh yeah!", 600);

    $data = __c("memcache")->get("keyword1");
    $data = __c("files")->get("keyword2");
    $data = __c()->keyword3;

    // Multiple ? No Problem

    $list = $cache1->getMulti(array("key1","key2","key3"));
    $cache2->setMulti(array("key1","value1", 300),
                      array("key2","value2", 600),
                      array("key3","value3", 1800),
                      );

    $list = $cache1->apc->getMulti(array("key1","key2","key3"));
    __c()->memcache->getMulti(array("a","b","c"));

    // want more? Check out document in source code

以上demo来自官网示例。


官网地址:http://www.phpfastcache.com/