PHP缓存集成库phpFastCache用法


Posted in PHP onDecember 15, 2014

本文实例讲述了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

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
php adodb连接mssql解决乱码问题
Jun 12 PHP
php Notice: Undefined index 错误提示解决方法
Aug 29 PHP
php !function_exists(&quot;T7FC56270E7A70FA81A5935B72EACBE29&quot;))代码解密
Jan 07 PHP
PHP开发者常犯的10个MySQL错误更正剖析
Jan 30 PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
Jun 14 PHP
php的dl函数用法实例
Nov 06 PHP
php生成短域名函数
Mar 23 PHP
Joomla调用系统自带编辑器的实现方法
May 05 PHP
php遍历替换目录下文件指定内容的方法
Nov 10 PHP
PHP实现的同步推荐操作API接口案例分析
Nov 30 PHP
浅谈PHP安全防护之Web攻击
Jan 03 PHP
安装docker和docker-compose实例详解
Jul 30 PHP
php图片的二进制转换实现方法
Dec 15 #PHP
php第一次无法获取cookie问题处理
Dec 15 #PHP
php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法
Dec 15 #PHP
php实现按指定大小等比缩放生成上传图片缩略图的方法
Dec 15 #PHP
php实现可用于mysql,mssql,pg数据库操作类
Dec 13 #PHP
PHP中Memcache操作类及用法实例
Dec 12 #PHP
PHP实现PDO的mysql数据库操作类
Dec 12 #PHP
You might like
解析php addslashes()与addclashes()函数的区别和比较
2013/06/24 PHP
ThinkPHP的模版中调用session数据的方法
2014/07/01 PHP
php防止伪造数据从地址栏URL提交的方法
2014/08/24 PHP
ThinkPHP处理Ajax返回的方法
2014/11/22 PHP
php实现文件上传及头像预览功能
2017/01/15 PHP
JavaScript实现点击按钮后变灰避免多次重复提交
2013/07/15 Javascript
jQuery插件Skippr实现焦点图幻灯片特效
2015/04/12 Javascript
Javascript实现颜色rgb与16进制转换的方法
2015/04/18 Javascript
使用node+vue.js实现SPA应用
2016/01/28 Javascript
全面解析Bootstrap布局组件应用
2016/02/22 Javascript
js匿名函数作为函数参数详解
2016/06/01 Javascript
jQuery通过ajax方法获取json数据不执行success的原因及解决方法
2016/10/15 Javascript
Bootstrap3 内联单选和多选框
2016/12/29 Javascript
非常优秀的JS图片轮播插件Swiper的用法
2017/01/03 Javascript
vue.js开发实现全局调用的MessageBox组件实例代码
2017/11/22 Javascript
js 将canvas生成图片保存,或直接保存一张图片的实现方法
2018/01/02 Javascript
vue插件开发之使用pdf.js实现手机端在线预览pdf文档的方法
2018/07/12 Javascript
vue项目添加多页面配置的步骤详解
2019/05/22 Javascript
layui动态加载多表头的实例
2019/09/05 Javascript
将RGB值转换为灰度值的简单算法
2019/10/09 Javascript
关于引入vue.js 文件的知识点总结
2020/01/28 Javascript
封装 axios+promise通用请求函数操作
2020/08/11 Javascript
numpy中实现ndarray数组返回符合特定条件的索引方法
2018/04/17 Python
用Python将一个列表分割成小列表的实例讲解
2018/07/02 Python
python求最大连续子数组的和
2018/07/07 Python
python实现键盘控制鼠标移动
2020/11/27 Python
使用Python给头像戴上圣诞帽的图像操作过程解析
2019/09/20 Python
Python常用模块sys,os,time,random功能与用法实例分析
2020/01/07 Python
python等差数列求和公式前 100 项的和实例
2020/02/25 Python
美体小铺奥地利官方网站:The Body Shop奥地利
2019/04/11 全球购物
研究生毕业自我鉴定范文
2014/03/27 职场文书
合作协议书格式
2014/08/19 职场文书
营销学习心得体会
2014/09/12 职场文书
离婚起诉状范本
2015/05/19 职场文书
2015年国庆节演讲稿范文
2015/07/30 职场文书
创业计划书之游泳馆
2019/09/16 职场文书