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 IP及IP段进行访问限制的代码
Dec 17 PHP
jQuery 源码分析笔记
May 25 PHP
如何在smarty中增加类似foreach的功能自动加载数据
Jun 26 PHP
单台服务器的PHP进程之间实现共享内存的方法
Jun 13 PHP
PHP_SELF,SCRIPT_NAME,REQUEST_URI区别
Dec 24 PHP
PHP实现统计在线人数功能示例
Oct 15 PHP
php preg_match的匹配不同国家语言实例
Dec 29 PHP
php上传excel表格并获取数据
Apr 27 PHP
PHP使用XMLWriter读写xml文件操作详解
Jul 31 PHP
PHP后期静态绑定之self::限制实例分析
Dec 21 PHP
php实现对文件压缩简单的方法
Sep 29 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
Apr 04 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
Codeigniter发送邮件的方法
2015/03/19 PHP
WordPress中注册菜单与调用菜单的方法详解
2015/12/18 PHP
php metaphone()函数及php localeconv() 函数实例解析
2016/05/15 PHP
PHP编程之设置apache虚拟目录
2016/07/08 PHP
php使用get_class_methods()函数获取分类的方法
2016/07/20 PHP
Yii使用EasyWechat实现小程序获取用户的openID的方法
2020/04/29 PHP
javascript 表格排序和表头浮动效果(扩展SortTable)
2009/04/07 Javascript
web 页面分页打印的实现
2009/06/22 Javascript
jquery ready函数源代码研究
2009/12/06 Javascript
FileUpload 控件 禁止手动输入或粘贴的实现代码
2010/04/07 Javascript
JavaScript的模块化:封装(闭包),继承(原型) 介绍
2013/07/22 Javascript
jquery实现动态菜单的实例代码
2013/11/28 Javascript
让angularjs支持浏览器自动填表
2014/11/10 Javascript
JavaScript笔记之数据属性和存储器属性
2016/03/31 Javascript
js仿淘宝和百度文库的评分功能
2016/05/15 Javascript
Three.js利用dat.GUI如何简化试验流程详解
2017/09/26 Javascript
BootStrap模态框不垂直居中的解决方法
2017/10/19 Javascript
vue2.0 兄弟组件(平级)通讯的实现代码
2018/01/15 Javascript
ionic2中使用自动生成器的方法
2018/03/04 Javascript
解决vue接口数据赋值给data没有反应的问题
2018/08/27 Javascript
vue实现计步器功能
2019/11/01 Javascript
Python简单获取自身外网IP的方法
2016/09/18 Python
高效测试用例组织算法pairwise之Python实现方法
2017/07/19 Python
用Python删除本地目录下某一时间点之前创建的所有文件的实例
2017/12/14 Python
PyCharm 2019.3发布增加了新功能一览
2019/12/08 Python
django框架使用views.py的函数对表进行增删改查内容操作详解【models.py中表的创建、views.py中函数的使用,基于对象的跨表查询】
2019/12/12 Python
如何基于python实现脚本加密
2019/12/28 Python
Python列表操作方法详解
2020/02/09 Python
详解HTML5中div和section以及article的区别
2015/07/14 HTML / CSS
沙特阿拉伯网上购物:Sayidaty Mall
2018/05/06 全球购物
公司出纳岗位职责
2013/12/07 职场文书
银行个人求职自荐信范文
2013/12/16 职场文书
幼儿园教研活动方案
2014/01/19 职场文书
核心价值观演讲稿
2014/05/13 职场文书
实操Python爬取觅知网素材图片示例
2021/11/27 Python
CSS中使用grid布局实现一套模板多种布局
2022/07/15 HTML / CSS