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 相关文章推荐
2.PHP入门
Oct 09 PHP
PHP实时显示输出
Oct 02 PHP
php mysql 判断update之后是否更新了的方法
Jan 10 PHP
浅析php中如何在有限的内存中读取大文件
Jul 02 PHP
destoon二次开发模板及调用语法汇总
Jun 21 PHP
PHP创建多级目录的两种方法
Oct 28 PHP
PHP获取指定日期是星期几的实现方法
Nov 30 PHP
php + nginx项目中的权限详解
May 23 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
Jan 29 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
Feb 06 PHP
PHP PDOStatement::columnCount讲解
Jan 30 PHP
Laravel 类和接口注入相关的代码
Oct 15 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
天津市收音机工业发展史
2021/03/04 无线电
PHP中动态显示签名和ip原理
2007/03/28 PHP
php mssql 分页SQL语句优化 持续影响
2009/04/26 PHP
php中3种方法删除字符串中间的空格
2014/03/10 PHP
PHP中spl_autoload_register()和__autoload()区别分析
2014/05/10 PHP
PHP设置Cookie的HTTPONLY属性方法
2017/02/09 PHP
Javascript 事件流和事件绑定
2009/07/16 Javascript
Javascript insertAfter() 实现函数代码
2011/10/12 Javascript
基于Bootstrap的后台管理面板 Bootstrap Metro Dashboard
2016/06/17 Javascript
Bootstrap Metronic完全响应式管理模板学习笔记
2016/07/08 Javascript
基于JavaScript实现的快速排序算法分析
2017/04/14 Javascript
详解升级react-router 4 踩坑指南
2017/08/14 Javascript
使用jQuery实现简单的tab框实例
2017/08/22 jQuery
angular2中Http请求原理与用法详解
2018/01/11 Javascript
vue全局组件与局部组件使用方法详解
2018/03/29 Javascript
vue.js实现简单的计算器功能
2020/02/22 Javascript
ant design pro中可控的筛选和排序实例
2020/11/17 Javascript
使用Python的Twisted框架编写简单的网络客户端
2015/04/16 Python
Python实现的数据结构与算法之链表详解
2015/04/22 Python
Python实现的概率分布运算操作示例
2017/08/14 Python
pandas进行数据的交集与并集方式的数据合并方法
2018/06/27 Python
python模块导入的细节详解
2018/12/10 Python
python 提取key 为中文的json 串方法
2018/12/31 Python
python and or用法详解
2019/06/26 Python
使用python动态生成波形曲线的实现
2019/12/04 Python
15行Python代码实现免费发送手机短信推送消息功能
2020/02/27 Python
Python 面向对象部分知识点小结
2020/03/09 Python
Python之Matplotlib文字与注释的使用方法
2020/06/18 Python
Css3实现无缝滚动防抖
2020/09/14 HTML / CSS
总经理司机职责
2014/02/02 职场文书
宗教学大学生职业生涯规划范文
2014/02/08 职场文书
对党的十八届四中全会的期盼
2014/10/17 职场文书
教师节感谢信
2015/01/22 职场文书
纪念建国70周年演讲稿
2019/07/19 职场文书
八年级作文之友谊
2019/12/02 职场文书
python如何读取.mtx文件
2021/04/22 Python