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基础知识:类与对象(5) static
Dec 13 PHP
php printf输出格式使用说明
Dec 05 PHP
PHP禁止页面缓存的代码
Oct 23 PHP
CodeIgniter使用phpcms模板引擎
Nov 12 PHP
PHP5各个版本的新功能和新特性总结
Mar 16 PHP
PHP+ajaxfileupload+jcrop插件完美实现头像上传剪裁
Jun 09 PHP
php通过递归方式复制目录和子目录的方法
Mar 13 PHP
php版微信自动获取收货地址api用法示例
Sep 22 PHP
php通过PHPExcel导入Excel表格到MySQL数据库的简单实例
Oct 29 PHP
php获取数据库结果集方法(推荐)
Jun 01 PHP
PHP Primary script unknown 解决方法总结
Aug 22 PHP
PHP 图片合成、仿微信群头像的方法示例
Oct 25 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
解析关于wamp启动是80端口被占用的问题
2013/06/21 PHP
mcrypt启用 加密以及解密过程详细解析
2013/08/07 PHP
PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能实例
2017/05/17 PHP
PHP类的自动加载机制实现方法分析
2019/01/10 PHP
PHP dirname功能及原理实例解析
2020/10/28 PHP
JS实现图片产生波纹一样flash效果的方法
2015/02/27 Javascript
NodeJs中的VM模块详解
2015/05/06 NodeJs
JavaScript类型系统之基本数据类型与包装类型
2016/01/06 Javascript
AngularJS基础 ng-keypress 指令简单示例
2016/08/02 Javascript
拖动时防止选中
2017/02/03 Javascript
JS中去掉array中重复元素的方法
2017/05/26 Javascript
JS实现微信里判断页面是否被分享成功的方法
2017/06/06 Javascript
javacript replace 正则取字符串中的值并替换【推荐】
2018/09/13 Javascript
bootstrap 日期控件 datepicker被弹出框dialog覆盖的解决办法
2019/07/09 Javascript
Vue 实例事件简单示例
2019/09/19 Javascript
使用python检测手机QQ在线状态的脚本代码
2013/02/10 Python
全面解析Python的While循环语句的使用方法
2015/10/13 Python
python简易远程控制单线程版
2018/06/20 Python
python 列表,数组和矩阵sum的用法及区别介绍
2018/06/28 Python
OpenCV3.0+Python3.6实现特定颜色的物体追踪
2019/07/23 Python
Python笔记之工厂模式
2019/11/20 Python
Python实现链表反转的方法分析【迭代法与递归法】
2020/02/22 Python
Pycharm中切换pytorch的环境和配置的教程详解
2020/03/13 Python
VScode连接远程服务器上的jupyter notebook的实现
2020/04/23 Python
python 匿名函数与三元运算学习笔记
2020/10/23 Python
pycharm远程连接服务器并配置python interpreter的方法
2020/12/23 Python
python基于opencv实现人脸识别
2021/01/04 Python
马来西亚时装购物网站:ZALORA马来西亚
2017/03/14 全球购物
艺术爱好者的自我评价分享
2013/10/08 职场文书
高校学生干部的自我评价分享
2013/11/04 职场文书
餐饮企业总经理岗位职责范文
2014/02/18 职场文书
公司会计主管岗位责任制
2014/03/01 职场文书
危爆物品安全大检查大整治工作方案
2014/05/03 职场文书
品质保证书格式
2015/02/28 职场文书
分析MySQL抛出异常的几种常见解决方式
2021/05/18 MySQL
Django操作cookie的实现
2021/05/26 Python