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加密解密的代码
Oct 09 PHP
用PHP的ob_start();控制您的浏览器cache!
Nov 25 PHP
PHP遍历二维数组的代码
Apr 22 PHP
php设计模式 Strategy(策略模式)
Jun 26 PHP
PHP编码转换
Nov 05 PHP
鸡肋的PHP单例模式应用详解
Jun 03 PHP
php类常量的使用详解
Jun 08 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
Jun 09 PHP
php计算一个文件大小的方法
Mar 30 PHP
PHP会话控制实例分析
Dec 24 PHP
php实现给二维数组中所有一维数组添加值的方法
Feb 04 PHP
PHP使用ajax的post方式下载excel文件简单示例
Aug 06 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面向对象值单例模式
2016/05/03 PHP
PHP7 安装event扩展的实现方法
2019/10/08 PHP
ThinkPHP 框架实现的读取excel导入数据库操作示例
2020/04/14 PHP
php中用unset销毁变量并释放内存
2020/05/10 PHP
Js 本页面传值实现代码
2009/05/17 Javascript
基于jquery的页面划词搜索JS
2010/09/14 Javascript
js 替换功能函数,用正则表达式解决,js的全部替换
2010/12/08 Javascript
jquery中ajax学习笔记3
2011/10/16 Javascript
Jquery 点击按钮自动高亮实现原理及代码
2014/04/25 Javascript
js控制网页背景音乐播放与停止的方法
2015/02/06 Javascript
JS图片定时翻滚效果实现方法
2016/06/21 Javascript
jQuery 自定义下拉框(DropDown)附源码下载
2016/07/22 Javascript
前端框架Vue.js中Directive知识详解
2016/09/12 Javascript
javascript 判断是否是微信浏览器的方法
2016/10/09 Javascript
node.js中实现kindEditor图片上传功能的方法教程
2017/04/26 Javascript
BootstrapTable加载按钮功能实例代码详解
2017/09/22 Javascript
解决node修改后需频繁手动重启的问题
2018/05/13 Javascript
JS在if中的强制类型转换方式
2018/07/15 Javascript
JavaScript选择排序算法原理与实现方法示例
2018/08/06 Javascript
vue.js 实现评价五角星组件的实例代码
2018/08/13 Javascript
nodejs基础之常用工具模块util用法分析
2018/12/26 NodeJs
JS异步处理的进化史深入讲解
2019/08/25 Javascript
python 开发的三种运行模式详细介绍
2017/01/18 Python
Python编程实现输入某年某月某日计算出这一天是该年第几天的方法
2017/04/18 Python
Tensorflow卷积神经网络实例
2018/05/24 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
2018/05/25 Python
Django如何简单快速实现PUT、DELETE方法
2019/07/24 Python
用python-webdriver实现自动填表的示例代码
2021/01/13 Python
特罗佩亚包官方网站:Tropea
2017/01/03 全球购物
处级领导干部四风问题自我剖析材料
2014/09/29 职场文书
给客户的感谢信
2015/01/21 职场文书
2015年感恩母亲节活动方案
2015/05/04 职场文书
2015年学校总务处工作总结
2015/05/19 职场文书
电影雷锋观后感
2015/06/10 职场文书
2016年“5.12”护士节慰问信
2015/11/30 职场文书
教你用Python爬取英雄联盟皮肤原画
2021/06/13 Python