php内存缓存实现方法


Posted in PHP onJanuary 24, 2015

本文实例讲述了php内存缓存实现方法。分享给大家供大家参考。具体如下:

在php中缓存分为很多种类型如,内存缓存,文件缓存,页面缓存。本文要来讲述关于php中内存缓存的一些方法,这里我们将介绍Memcached缓存和php自带的APC缓存方法.

1.Memcached缓存。

memcached是高性能的分布式内存缓存服务器,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度,memcached 使用了“Key=>Value”方式组织数据,可以允许不同主机上的多个用户同时访问这个缓存系统,一般用于大型网站使用,memcached使用内存缓存数据,所以它是易失的,当服务器重启,或者memcached进程中止,数据便会丢失,所以 memcached不能用来持久保存数据.

用过php_memcache的人都会觉得 PHP内存缓存是一个很复杂的东西,其实不然memcached 是高效、快速的分布式内存对象缓存系统,主要用于加速 WEB 动态应用程序.

这里介绍memcached在WIN32下的配置及其使用.

一、PHP内存缓存的配置,WIN32环境

1、下载php_memcache.rar

解压压缩包:php_memcache.rar

php_memcache.rar压缩包里主包含的文件有:

/memcached-1.2.1-win32/memcached.exe

/php_memcache/php_memcache.dll

2、打开命令提示符,指向到memcached.exe所在路径,运行memcached.exe -d start。

3、将php_memcache.dll文件拷贝到PHP的动态文件库的文件夹下。

4、在php.ini文件中加入一行extension=php_memcache.dll。

5、重新启动Apache,然后查看一下phpinfo,如果有memcache,那么就说明安装成功!

例,代码如下:

<?php 

//包含 memcached 类文件 

require_once('memcached-client.php'); 

 

//选项设置 

$options = array( 

 'servers' => array('3water.com:11211'),//memcached 服务的地址、端口 

 'debug' => true,//是否打开debug 

 'compress_threshold' => 10240,//超过多少字节的数据时进行压缩 

 'persistant' => false//是否使用持久连接 

 ); 

 

//实例化memcached对象 

$memcached = new memcached($options); 

 

$sql = 'SELECT * FROM table1'; 

$key = md5($sql); 

 

//如果在memcached中没有缓存数据,把缓存数据写入memcached 

if(!($datas = $memcached->get($key))) 

{ 

 $conn = mysql_connect('localhost', 'hxsd', '123456'); 

 mysql_select_db('hxsd'); 

 $result = mysql_query($sql); 

 while($row = mysql_fetch_object($result)) 

 { 

  $datas[] = $row; 

 } 

 //将数据库中获取到的结果集数据保存到 memcached 中,以供下次访问时使用。 

 $memcached->add($key, $datas); 

} 

else 

{ 

 //直接使用memcached中的缓存数据$datas 

} 

?>

内存缓存二,APC、EC、Zend加速器的比较

一、APC

APC,全称是Alternative PHP Cache,官方翻译叫”可选PHP缓存”,主页是 http://pecl.php.net/package/apc,php帮助手册页面: http://cn.php.net/apc

APC是个优化器,自安装之日起,就默默地在后台为您的PHP应用服务了.您的所有PHP代码会被缓存起来,针对php opcode.

另外,APC可提供一定的内存缓存功能.但是这个功能并不是十分完美,有报告说如果频繁使用APC缓存的写入功能,会导致不可预料的错误.如果想使用这个功能,可以看看apc_fetch,apc_store等几个与apc缓存相关的函数.

安装,代码如下:

# pecl install APC

配置:/etc/php.inc,代码如下:

extension=apc.so

[apc]

apc.enabled = 1 

apc.shm_segments = 1 

apc.shm_size = 30 

apc.optimization = 0 

apc.ttl = 7200 

apc.user_ttl = 7200 

apc.num_files_hint = 1000 

apc.mmap_file_mask = /tmp/apc.XXXXXX

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

PHP 相关文章推荐
PHP下几种删除目录的方法总结
Aug 19 PHP
抓取YAHOO股票报价的类
May 15 PHP
两个强悍的php 图像处理类1
Jun 15 PHP
php empty函数 使用说明
Aug 10 PHP
PHP操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
Nov 10 PHP
php的一个简单加密解密代码
Jan 14 PHP
PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
Jul 23 PHP
PHP结合Jquery和ajax实现瀑布流特效
Jan 07 PHP
解决出现SoapFault (looks like we got no XML document)的问题
Jun 24 PHP
php实现二叉树中和为某一值的路径方法
Oct 14 PHP
PHP实现数据四舍五入的方法小结【4种方法】
Mar 27 PHP
php引用和拷贝的区别知识点总结
Sep 23 PHP
php+xml编程之SimpleXML的应用实例
Jan 24 #PHP
php+xml编程之xpath的应用实例
Jan 24 #PHP
php+xml实现在线英文词典之添加词条的方法
Jan 23 #PHP
php+xml实现在线英文词典查询的方法
Jan 23 #PHP
通过php修改xml文档内容的方法
Jan 23 #PHP
通过php删除xml文档内容的方法
Jan 23 #PHP
Laravel实现用户注册和登录
Jan 23 #PHP
You might like
php模板原理讲解
2013/11/13 PHP
Yii配置文件用法详解
2014/12/04 PHP
PHP中if和or运行效率对比
2014/12/12 PHP
php实现微信公众号无限群发
2015/10/11 PHP
php is_writable判断文件是否可写实例代码
2016/10/13 PHP
Yii2框架实现数据库常用操作总结
2017/02/08 PHP
PHP vsprintf()函数格式化字符串操作原理解析
2020/07/14 PHP
兼容多浏览器的字幕特效Marquee的通用js类
2008/07/20 Javascript
JavaScript加入收藏夹功能(兼容IE、firefox、chrome)
2014/05/05 Javascript
jquery 为a标签绑定click事件示例代码
2014/06/23 Javascript
node.js中的buffer.copy方法使用说明
2014/12/14 Javascript
BootStrap按钮标签及基本样式
2016/11/23 Javascript
Angular2学习笔记——详解路由器模型(Router)
2016/12/02 Javascript
js css3实现图片拖拽效果
2017/03/04 Javascript
Vue.js展示AJAX数据简单示例讲解
2017/03/29 Javascript
js轮播图透明度切换(带上下页和底部圆点切换)
2017/04/27 Javascript
基于JS实现移动端左滑删除功能
2017/07/28 Javascript
vue.js多页面开发环境搭建过程
2019/04/24 Javascript
jQuery实现的记住帐号密码功能完整示例
2019/08/03 jQuery
JavaScript实现H5接金币功能(实例代码)
2021/02/22 Javascript
python3.0 模拟用户登录,三次错误锁定的实例
2017/11/02 Python
Python 实现Image和Ndarray互相转换
2020/02/19 Python
Keras保存模型并载入模型继续训练的实现
2021/02/20 Python
伦敦最著名的老字号百货公司:Selfridges(塞尔福里奇百货)
2016/07/25 全球购物
俄罗斯连接商品和买家的在线平台:goods.ru
2020/11/30 全球购物
物流仓储实习自我鉴定
2013/09/25 职场文书
数控专业毕业生自荐信范文
2014/03/04 职场文书
国窖1573广告词
2014/03/21 职场文书
高中生评语大全
2014/04/25 职场文书
安全教育月活动总结
2014/05/05 职场文书
素质教育标语
2014/06/27 职场文书
医院安全生产月活动总结
2014/07/05 职场文书
常务副总经理岗位职责
2015/02/02 职场文书
CAD实训总结范文
2015/08/03 职场文书
担保书格式范文
2015/09/22 职场文书
大学三好学生主要事迹范文
2015/11/03 职场文书