设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 手机 数据
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP缓存集成库phpFastCache学习方法

发布时间:2022-02-23 14:50 所属栏目:121 来源:互联网
导读:PHP缓存的方法有很多种,常用的有memcache, memcached。现在我们来学习一个php缓存集成库phpFastCache,就是开源的,只有一个简单的php文件,就可以支持包括apc,memcache,memcached,wincache,files,pdo and mpdo等缓存方法. phpFastCache是一个开源的PHP缓存库,
  PHP缓存的方法有很多种,常用的有memcache, memcached。现在我们来学习一个php缓存集成库phpFastCache,就是开源的,只有一个简单的php文件,就可以支持包括apc,memcache,memcached,wincache,files,pdo and mpdo等缓存方法.
 
  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();
  //开源软件:Cuoxin.com
  // 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
  ?>

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读