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 相关文章推荐
腾讯QQ php程序员面试题目整理
Jun 08 PHP
第二章 PHP入门基础之php代码写法
Dec 30 PHP
PHP数组传递是值传递而非引用传递概念纠正
Jan 31 PHP
php中文验证码实现示例分享
Jan 12 PHP
基于递归实现的php树形菜单代码
Nov 19 PHP
PHP 使用memcached简单示例分享
Mar 05 PHP
PHP CURL 多线程操作代码实例
May 13 PHP
PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)
Sep 22 PHP
Yii中Model(模型)的创建及使用方法
Dec 28 PHP
PHP中spl_autoload_register()函数用法实例详解
Jul 18 PHP
yii2-GridView在开发中常用的功能及技巧总结
Jan 07 PHP
解决在laravel中auth建立时候遇到的问题
Oct 15 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 JSON格式数据交互实例代码详解
2011/01/13 PHP
php中CI操作多个数据库的代码
2012/07/05 PHP
mysql,mysqli,PDO的各自不同介绍
2012/09/19 PHP
php中json_encode处理gbk与gb2312中文乱码问题的解决方法
2014/07/10 PHP
PHP实现的简单日历类
2014/11/29 PHP
PHP实现格式化文件数据大小显示的方法
2015/01/03 PHP
PHP中如何使用session实现保存用户登录信息
2015/10/20 PHP
PHP实现活动人选抽奖功能
2017/04/19 PHP
PHP实现会员账号单唯一登录的方法分析
2019/03/07 PHP
jQuery 常见开发使用技巧总结
2009/12/26 Javascript
解析jQuery与其它js(Prototype)库兼容共存
2013/07/04 Javascript
jQuery探测位置的提示弹窗(toolTip box)详细解析
2013/11/14 Javascript
我的Node.js学习之路(二)NPM模块管理
2014/07/06 Javascript
JavaScript中的值类型详细介绍
2014/12/29 Javascript
js jquery获取当前元素的兄弟级 上一个 下一个元素
2015/09/01 Javascript
jQuery 3 中的新增功能汇总介绍
2016/06/12 Javascript
移动端使用localStorage缓存Js和css文的方法(web开发)
2016/09/20 Javascript
JS比较两个数值的大小实例
2016/11/25 Javascript
基于js粘贴事件paste简单解析以及遇到的坑
2017/09/07 Javascript
Vue中div contenteditable 的光标定位方法
2018/08/25 Javascript
详解从NodeJS搭建中间层再谈前后端分离
2018/11/13 NodeJs
vue实现压缩图片预览并上传功能(promise封装)
2019/01/10 Javascript
微信小程序学习总结(二)样式、属性、模板操作分析
2020/06/04 Javascript
Javascript实现单选框效果
2020/12/09 Javascript
微信小程序用户登录和登录态维护的实现
2020/12/10 Javascript
[05:04]DOTA2上海特级锦标赛主赛事第二日TOP10
2016/03/04 DOTA
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
2014/06/25 Python
在Python中操作列表之list.extend()方法的使用
2015/05/20 Python
Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)
2020/05/11 Python
Python读取多列数据以及用matplotlib制作图表方法实例
2020/09/23 Python
给儿子的表扬信
2014/01/15 职场文书
国培教师自我鉴定
2014/02/12 职场文书
酒店总经理岗位职责
2014/03/17 职场文书
新闻发布会主持词
2014/03/28 职场文书
2016年青少年禁毒宣传教育活动总结(学校)
2016/04/05 职场文书
Python 游戏大作炫酷机甲闯关游戏爆肝数千行代码实现案例进阶
2021/10/16 Python