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下防止单引号,双引号在接受页面转义的设置方法
Sep 25 PHP
自动把纯文本转换成Web页面的php代码
Aug 27 PHP
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
Nov 07 PHP
基于PHP array数组的教程详解
Jun 05 PHP
ThinkPHP Mobile使用方法简明教程
Jun 18 PHP
php出现web系统多域名登录失败的解决方法
Sep 30 PHP
PHP实现PDO的mysql数据库操作类
Dec 12 PHP
ecshop 2.72如何修改后台访问地址
Mar 03 PHP
Laravel 5框架学习之向视图传送数据
Apr 08 PHP
PHP通过API获取手机号码归属地
May 28 PHP
PHP实现对二维数组某个键排序的方法
Sep 14 PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 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实现的漂亮分页方法
2014/04/17 PHP
php中addslashes函数与sql防注入
2014/11/17 PHP
ThinkPHP实现支付宝接口功能实例
2014/12/02 PHP
Yii2创建多界面主题(Theme)的方法
2016/10/08 PHP
通过 Dom 方法提高 innerHTML 性能
2008/03/26 Javascript
js读取本地excel文档数据的代码
2010/11/11 Javascript
jQuery中使用了document和window哪些属性和方法小结
2011/09/13 Javascript
解决jquery submit()提交表单提示:f[s] is not a function
2013/01/23 Javascript
JavaScript中setFullYear()方法的使用详解
2015/06/11 Javascript
js实现a标签超链接提交form表单的方法
2015/06/24 Javascript
基于PHP和Mysql相结合使用jqGrid读取数据并显示
2015/12/02 Javascript
Node.js项目中调用JavaScript的EJS模板库的方法
2016/03/11 Javascript
EasyUI在表单提交之前进行验证的实例代码
2016/06/24 Javascript
js鼠标按键事件和键盘按键事件用法实例汇总
2016/10/03 Javascript
JS键盘版计算器的制作方法
2016/12/03 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(下)
2017/04/21 Javascript
ES6深入理解之“let”能替代”var“吗?
2017/06/28 Javascript
vue2.x select2 指令封装详解
2017/10/12 Javascript
Node实战之不同环境下配置文件使用教程
2018/01/02 Javascript
bootstrap动态调用select下拉框的实例代码
2018/08/09 Javascript
微信小程序实现顶部下拉菜单栏
2018/11/04 Javascript
Vue发布项目实例讲解
2019/07/17 Javascript
TensorFlow在MAC环境下的安装及环境搭建
2017/11/14 Python
Django框架验证码用法实例分析
2019/05/10 Python
pandas将多个dataframe以多个sheet的形式保存到一个excel文件中
2019/10/10 Python
Pytorch to(device)用法
2020/01/08 Python
跨域修改iframe页面内容详解
2019/10/31 HTML / CSS
武汉某公司的C#笔试题面试题
2015/12/25 面试题
管理学专业个人求职信范文
2013/09/21 职场文书
监理资料员岗位职责
2014/01/03 职场文书
社区十八大感言
2014/01/19 职场文书
导师推荐信范文
2014/05/09 职场文书
贷款承诺书范文
2014/05/19 职场文书
医院党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
全国爱牙日活动总结
2015/02/05 职场文书
简历自我评价范文
2019/04/24 职场文书