• PHP缓存库phpFastCache


    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/

  • 相关阅读:
    NFS服务端和客户端的配置
    Linux下安装配置openjdk
    fontawesome图标显示不出来
    linux修改/etc/profile文件 保存时提示文件是只读类型无法保存
    正则表达式入门(一)
    Windows安装mysql
    千锋Flask学习笔记
    java解析EasyExcel工具的使用
    阿里云oss
    Nginx 请求转发
  • 原文地址:https://www.cnblogs.com/shockerli/p/phpfastcache.html
Copyright © 2020-2023  润新知