Heim >Backend-Entwicklung >PHP-Tutorial >php内存缓存实现程序代码_PHP教程

php内存缓存实现程序代码_PHP教程

WBOY
WBOYOriginal
2016-07-20 11:11:40703Durchsuche

在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,那么就说明安装成功!


例:

 代码如下 复制代码

//包含 memcached 类文件
require_once('memcached-client.php');
 
//选项设置
$options = array(
 'servers' => array('www.hxsd.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


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/444642.htmlTechArticle在php中缓存分为很多种类型如,内存缓存,文件缓存,页面缓存本文章要来讲述关于php中内存缓存的一些方法,下面我们介绍Memcached缓存和...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn