分类: 系统运维
2006-08-16 14:48:05
–
–
–
–
–
–
–设置为调试模式
–
--
--
–
–
--
–
–
--
–
Cache_Lite提供一个快速、轻量级、安全的 cache
介绍 –
PEAR::Cache_Lite是一个小型的cache
首先, PEAR::Cache_Lite
在这个文档里,你可以发现关于cache_lite
因为cache
在高访问量的网站, cache
文件锁并不是一个完美的解决方案因为它不能用于NFS
Cache_Lite
参数(与缺省的不同的部分)使用联合数租来传递到构造函数
一个cache
让我们由一个简单的例子开始:
|
如果你希望每一区块使用一个cache
|
尽管如此,不是总是可以用一个字符串变量来恢复一个页面的所有内容。因此
|
概念和单独区块的用法相同:
|
为了将Cache_Lite
错误的方法 :
|
这是正确的方法(
|
要更大效率的使用 Cache_Lite,
constructor Cache_Lite::Cache_Lite() –
require_once 'Lite.php'; |
void constructor Cache_Lite::Cache_Lite
([array $options = array(NULL)])
Cache_Lite核心类的构造函数.
array $options
关联数组可以设置大量的选项
表 23-1.
选项 |
数据类型 |
缺省值 |
描述 |
cacheDir |
string |
/tmp/ |
放置cache 文件的目录 (结尾要加上’/’) |
caching |
boolean |
TRUE |
启用 / 禁用 caching |
lifeTime |
integer |
3600 |
Cache以秒为单位的生命周期 |
fileLocking |
boolean |
TRUE |
启用 / 禁用 文件锁定 (可以在不利情况下避免cache讹误) |
writeControl |
boolean |
TRUE |
启用 / 禁用 写入控制 (启用写入控制会轻微的减慢cache写入的速度但不会影响读取, 写入控制可以检测一些讹误的cache文件,但也许他并不是最完美的控制) |
readControl |
boolean |
TRUE |
启用 / 禁用 读取控制(如果启用, 一个控制键会被嵌入到cache文件中,并且这个键将会和读取文件后计算出那个进行比较) |
readControlType |
string |
crc32 |
读取控制的类型(只有当readControl启用时). 应当为 'md5' (用一个 md5 hash控制(最好但最慢)), 'crc32' (用一个crc32 hash (更快但安全性稍低于md5)) 或'strlen' (只用一个长度测试 (最快)) |
pearErrorMode |
integer |
CACHE_LITE_ERROR_RETURN |
pear 错误模式 (当调用raiseError时) (使用CACHE_LITE_ERROR_RETURN 只返回一个 PEAR_Error对象 或 CACHE_LITE_ERROR_DIE用来立即停止脚本(最好用于debug)) |
fileNameProtection |
boolean |
TRUE |
文件名保护 (如果设为 true, 你可以使用任何cache Id 或组名, 如果设为false, 它会更快 , 但是 cache id和组名将直接应用到 cache文件的文件名,所以要小心使用特殊字符...) |
automaticSerialization |
boolean |
FALSE |
启用 / 禁用 自动序列化 (它用于直接存储不为字符串的数据,但是它会比较慢) |
memoryCaching |
boolean |
FALSE |
[BETA QUALITY] 启用 / 禁用 "Memory Caching" (NB : memory caching没有生命周期, 只到脚本结束时为止) |
onlyMemoryCaching |
boolean |
FALSE |
[BETA QUALITY] 启用 / 禁用 "Only Memory Caching" (如果启用, 将不再使用文件) |
memoryCachingLimit |
integer |
1000 |
[BETA QUALITY] 存储在内存缓冲中的纪录的最大数量 |
automaticCleaningFactor |
integer |
0 |
[since 1.4.0beta1] 启用 / 禁用自动清除进程. 当一个新的cache文件写入的时候,自动清除进程销毁太旧的 (用一个给定的生命周期) cache 文件. 0 代表 "没有cache自动清除", 1 代表 "系统的 cache 清除" (slow), x>1 意味着 "当x 次cache 写入时。随机自动 清除 1 次". 一个20到200之间的值也许是好的开始. |
hashedDirectoryLevel |
integer |
0 |
[since 1.4.0beta1] 设置hash目录结构分层. 0 代表 "没有hash目录结构", 1 代表 "使用一层目录", 2 代表 "两层"... 只有在有很多的cache文件时。这个选项才可以加速cache_lite。只有进行具体的测试才可以帮助你找到适合的值. 也许, 1 或 2 是一个好的开始. |
throws 没有异常抛出
这个函数不能静态的调用.
例子 23-1. 使用最普通的选项
|
Cache_Lite::get() --
require_once 'Lite.php'; |
string Cache_Lite::get
(string $id [, string $group = 'default'[, boolean $doNotTestCacheValidity =
FALSE]])
Cache_Lite
string $id
cache id
string $group
cache组的名称
boolean $doNotTestCacheValidity
如果设置为TRUE, cache
returns cache
这个函数不能静态的调用.
例子 23-1. 典型用法
|
Cache_Lite::save() –
require_once 'Lite.php'; |
boolean Cache_Lite::save
(string $data [, string $id = NULL [,string $group = 'default']])
保存给定数据 (
string $data
放进cache
string$id
cache id
string $group
cache组的名称
returns
这个函数不能静态的调用.
例子 23-1. 典型用法
|
Cache_Lite::remove() –
require_once 'Lite.php'; |
boolean Cache_Lite::remove
(string $id [, string $group = 'default'])
string $id
cache id
string $group
cache组的名称
returns
这个函数不能静态的调用.
例子 23-1. 典型用法
|
这是一个虚拟的例子因为在脚本的开始cache
Cache_Lite::clean() –
require_once 'Lite.php'; |
boolean Cache_Lite::clean
([string $group =
FALSE])
如果没指定组就清除所有的cache
string $group
cache组的名称
returns没问题的话返回true
这个函数不能静态的调用..
例子 23-1. 典型用法
|
这个例子清除所有cache
Cache_Lite::setToDebug() –
require_once 'Lite.php'; |
void Cache_Lite::setToDebug
()
当发现错误时,脚本将停止并显示出错误信息 (
这个函数不能静态的调用.
Cache_Lite::setLifeTime() --
require_once 'Lite.php'; |
void Cache_Lite::setLifeTime
(int $newLifeTime)
改变生命周期
integer $newLifeTime
新的生命周期 (
throws 没有异常抛出
这个函数不能静态的调用.
Cache_Lite::saveMemoryCachingState() --
require_once 'Lite.php'; |
void Cache_Lite::saveMemoryCachingState
(string $id [, string $group = 'default'])
[BETAQUALITY] 保存内存缓冲数组的当前状态到经典的cache
string $id
cache id
string $group
cache组的名称
这个函数不能静态的调用.
Cache_Lite::getMemoryCachingState() --
require_once 'Lite.php'; |
void Cache_Lite::getMemoryCachingState
(string $id [, string $group = 'default'[, bool $doNotTestCacheValidity =
FALSE]])
[BETAQUALITY] 从经典的cache
string $id
cache id
string $group
cache组的名称
boolean $doNotTestCacheValidity
如果设为TRUE, cache
这个函数不能静态的调用.
Cache_Lite::lastModified() -- Returnthe cache last modification time
require_once 'Lite.php'; |
int Cache_Lite::lastModified
()
[ONLYFOR CACHE_LITE HACKERS] 返回cache
returns 最后修改时间
这个函数不能静态的调用.
Cache_Lite::raiseError() -- Triggera PEAR error
require_once 'Lite.php'; |
void Cache_Lite::raiseError
(string $msg, int $code)
继承PEAR.php
为了增加性能,PEAR.php
string $msg
错误信息
integer $code
错误码
这个函数不能静态的调用.
constructor Cache_Lite_Output::Cache_Lite_Output() –
require_once 'LiteOutput.php'; |
void constructor Cache_Lite_Output::Cache_Lite_Output
(array $options)
Cache_Lite_OUTPUT
array $options
关联数组可以设置大量的选项
Table23-1.
选项 |
数据类型 |
缺省值 |
描述 |
cacheDir |
string |
/tmp/ |
放置cache 文件的目录 (结尾要加上’/’) |
caching |
boolean |
TRUE |
启用 / 禁用 caching |
lifeTime |
integer |
3600 |
Cache以秒为单位的生命周期 |
fileLocking |
boolean |
TRUE |
启用 / 禁用 文件锁定 (可以在不利情况下避免cache讹误) |
writeControl |
boolean |
TRUE |
启用 / 禁用 写入控制 (启用写入控制会轻微的减慢cache写入的速度但不会影响读取, 写入控制可以检测一些讹误的cache文件,但也许他并不是最完美的控制) |
readControl |
boolean |
TRUE |
启用 / 禁用 读取控制(如果启用, 一个控制键会被嵌入到cache文件中,并且这个键将会和读取文件后计算出那个进行比较) |
readControlType |
string |
crc32 |
读取控制的类型(只有当readControl启用时). 应当为 'md5' (用一个 md5 hash控制(最好但最慢)), 'crc32' (用一个crc32 hash (更快但安全性稍低于md5)) 或'strlen' (只用一个长度测试 (最快)) |
pearErrorMode |
integer |
CACHE_LITE_ERROR_RETURN |
pear 错误模式 (当调用raiseError时) (使用CACHE_LITE_ERROR_RETURN 只返回一个 PEAR_Error对象 或 CACHE_LITE_ERROR_DIE用来立即停止脚本(最好用于debug)) |
fileNameProtection |
boolean |
TRUE |
文件名保护 (如果设为 true, 你可以使用任何cache Id 或组名, 如果设为false, 它会更快 , 但是 cache id和组名将直接应用到 cache文件的文件名,所以要小心使用特殊字符...) |
automaticSerialization |
boolean |
FALSE |
启用 / 禁用 自动序列化 (它用于直接存储不为字符串的数据,但是它会比较慢) |
memoryCaching |
boolean |
FALSE |
[BETA QUALITY] 启用 / 禁用 "Memory Caching" (NB : memory caching没有生命周期, 只到脚本结束时为止) |
onlyMemoryCaching |
boolean |
FALSE |
[BETA QUALITY] 启用 / 禁用 "Only Memory Caching" (如果启用, 将不再使用文件) |
memoryCachingLimit |
integer |
1000 |
[BETA QUALITY] 存储在内存缓冲中的纪录的最大数量 |
这个函数不能静态的调用.
Cache_Lite_Output::start() --
require_once 'LiteOutput.php'; |
boolean Cache_Lite_Output::start
(string $id [, string $group = 'default'])
测试是否一个cache
string $id
cache id
string $group
cache组的名称
returns
这个函数不能静态的调用.
例子 23-1. 典型用法
|
Cache_Lite_Output::end() --
require_once 'LiteOutput.php'; |
void Cache_Lite_Output::end
()
停止由start()
这个函数不能静态的调用.
例子 23-1. 典型用法
|
constructor Cache_Lite_Function::Cache_Lite_Function() –
require_once 'LiteFunction.php'; |
void constructor Cache_Lite_Function::Cache_Lite_Function
([array $options = array(NULL)])
Cache_Lite_Function
array $options
选项
Table23-1.
选项 |
数据类型 |
缺省值 |
描述 |
cacheDir |
string |
/tmp/ |
放置cache 文件的目录 (结尾要加上’/’) |
caching |
boolean |
TRUE |
启用 / 禁用 caching |
lifeTime |
integer |
3600 |
Cache以秒为单位的生命周期 |
fileLocking |
boolean |
TRUE |
启用 / 禁用 文件锁定 (可以在不利情况下避免cache讹误) |
writeControl |
boolean |
TRUE |
启用 / 禁用 写入控制 (启用写入控制会轻微的减慢cache写入的速度但不会影响读取, 写入控制可以检测一些讹误的cache文件,但也许他并不是最完美的控制) |
readControl |
boolean |
TRUE |
启用 / 禁用 读取控制(如果启用, 一个控制键会被嵌入到cache文件中,并且这个键将会和读取文件后计算出那个进行比较) |
readControlType |
string |
crc32 |
读取控制的类型(只有当readControl启用时). 应当为 'md5' (用一个 md5 hash控制(最好但最慢)), 'crc32' (用一个crc32 hash (更快但安全性稍低于md5)) 或'strlen' (只用一个长度测试 (最快)) |
pearErrorMode |
integer |
CACHE_LITE_ERROR_RETURN |
pear 错误模式 (当调用raiseError时) (使用CACHE_LITE_ERROR_RETURN 只返回一个 PEAR_Error对象 或 CACHE_LITE_ERROR_DIE用来立即停止脚本(最好用于debug)) |
fileNameProtection |
boolean |
TRUE |
文件名保护 (如果设为 true, 你可以使用任何cache Id 或组名, 如果设为false, 它会更快 , 但是 cache id和组名将直接应用到 cache文件的文件名,所以要小心使用特殊字符...) |
automaticSerialization |
boolean |
FALSE |
启用 / 禁用 自动序列化 (它用于直接存储不为字符串的数据,但是它会比较慢) |
memoryCaching |
boolean |
FALSE |
[BETA QUALITY] 启用 / 禁用 "Memory Caching" (NB : memory caching没有生命周期, 只到脚本结束时为止) |
onlyMemoryCaching |
boolean |
FALSE |
[BETA QUALITY] 启用 / 禁用 "Only Memory Caching" (如果启用, 将不再使用文件) |
memoryCachingLimit |
integer |
1000 |
[BETA QUALITY] 存储在内存缓冲中的纪录的最大数量 |
defaultGroup |
string |
Cache_Lite_Function |
Function缓冲的缺省cache组 |
这个函数不能静态的调用.
Cache_Lite_Function::call() –
require_once 'LiteFunction.php'; |
mixed Cache_Lite_Function::call
(string$functionName, mixed$arg1,mixed$arg2, mixed$arg3, mixed...)
当没有一个函数的cache
returns
这个函数不能静态的调用.
例子 23-1. 使用函数的典型用法
|
例子 23-1. 使用方法的典型用法
|
如果你试图以$this 例子 23-1. 使用静态方法的典型用法例子
require_once(
'Cache/Lite/Function.php'
);
$options
= array(
'cacheDir'
=>
'/tmp/'
,
'lifeTime'
=>
3600
);
$cache
= new
Cache_Lite_Function
(
$options
);
$cache
->
call
(
'bench::static_method_to_bench'
,
12
,
45
);
class
bench
{
var
$test
;
function
static_method_to_bench
(
$arg1
,
$arg2
) {
echo
"This is the output of the function static_method_to_bench($arg1, $arg2) !
";
return
"This is the result of the function static_method_to_bench($arg1, $arg2) !
";
}
}
?>