详解 php
php
php
php 缓存技术
先简单的说一下:
PHP
缓存技术
WEB 程序获取信息的方式主要是查询数据库
,
当数据库不是很大的情况下不
会有太大的问题
.
然而
,
随着网站的发展
,
数据库呈几何级数的方式增长的时候
,
就
会出现瓶颈
.
于 是 PH P 缓存技术诞生了 .PH P 缓存技术工作时
,
当程序查询数据的
时候 , 会把相应的结果序列化后保存到文件中 , 以后同样的查询语句就可以不用
直接查询数据库 , 而是从缓存文件中获得 。 这一改进使得程序运行速度得以太幅
度提升
.
目前应 用 PH P 缓存技术比较流行的方法主要 是 Adodb+Smart
y
这样的黄金搭
档
.
PHP 缓存技术工作原理
:
首先看看
adodb
提供的数据缓存功能:
1<?php
2include('adodb.inc.php'); # load code common to ADOdb
3$ADODB_CACHE_DIR = '/usr/ADODB_cache';
4$conn = &ADONewConnection('mysql'); # create a connection
5$conn->PConnect(' http://www.aboutstudy.net ','userid','','agora');# connect
to MySQL, agora db
6$sql = 'select CustomerName, CustomerID from customers';
7$rs = $conn->CacheExecute(15,$sql);
8?> 如上,每次查询数据的时候,会把相应的结果序列化后保存到文件中,
以后同样的查询语句就可以不用直接查询数据库,而是从缓存文件中获得。
再来看看 Smarty 提供的页面缓存功能:
1<?php
2require('Smarty.class.php');
3$smarty = new Smarty;
4$smarty->caching = true;
5if(!$smarty->is_cached('index.tpl'))
{
6
//
No cache available, do variable assignments here.
7 $contents = get_database_contents();
8 $smarty->assign($contents);
9}
10$smarty->display('index.tpl');
11?>
12
如上,每次访问页面的时候,都会先检测相应的缓存是否存在,如果不存在
,
就连接数据库 , 得到数据 , 完成模板变量的赋值 , 显示页面 , 同时生成缓存文件
,
这样下次访问的时候缓存文件就发挥作用了 , 而不会再执行 if 块的数据查询语句
了 。 当然 , 在实际使用中会有很多东西要考虑 , 比如 , 有效期的设置 , 缓存组的
设置等等,具体可以查看 Smarty 手册中有关缓存( caching )的相关章节。
以上两 个 PH P 流行组件缓存方式的侧重点是不同的 , 对 于 Adod b 的缓存而言
,
它缓存的是数据 , 对于
Smarty
的缓存而言 , 它缓存的是页面 。 其他提供缓存功