Heim  >  Artikel  >  php教程  >  PHP缓存库phpFastCache

PHP缓存库phpFastCache

WBOY
WBOYOriginal
2016-06-06 19:36:191712Durchsuche

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来定义缓存的有效时间。

减少数据库查询

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

    </span><span>//</span><span> 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</span>
    <span>$cache</span> =<span> phpFastCache();

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

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

    </span><span>//</span><span> Output Your Contents $products HERE</span>

 

提高cURL和API调用性能

<span>php
    </span><span>include</span>("phpfastcache/phpfastcache.php"<span>);

    </span><span>$cache</span> = phpFastCache("memcached"<span>);

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

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

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


全页缓存

<span>php
    </span><span>//</span><span> use Files Cache for Whole Page / Widget

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

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

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

    </span><span>echo</span> <span>$html</span>;


挂件缓存

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

    </span><span>$html</span> = <span>$cache</span>-><span>widget_1;

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

    </span><span>echo</span> or <span>return</span> your <span>$html</span>;


同时使用多种缓存

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

    </span><span>$cache1</span> =<span> phpFastCache();

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

    </span><span>$cache3</span> = <span>new</span> phpFastCache("apc"<span>);

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

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

    </span><span>//</span><span> Free to Travel between any caching methods</span>

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

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

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

    </span><span>//</span><span> Multiple ? No Problem</span>

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

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

    </span><span>//</span><span> want more? Check out document in source code</span>

 

以上demo来自官网示例。


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

 

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn