ThinkPHP3.0完全开发手册
所有的缓存方式都被统一使用公共的调用接口,这个接口就是Cache缓存类。
缓存类的使用很简单,首先实例化缓存类:
$Cache = Cache::getInstance('缓存方式','缓存参数');
缓存方式 |
可以支持File、Apachenote、Apc、Eaccelerator、Memcache、Shmop、Sqlite、Db、Redis和Xcache |
|
缓存参数 (根据不同的缓存方式存在不同的参数) |
通用缓存参数 |
expire 缓存有效期(默认由DATA_CACHE_TIME参数配置) length 缓存队列长度(默认为0) queue 缓存队列方式(默认为file 还支持xcache和apc) |
缓存方式 |
额外支持的缓存参数 |
|
File(文件缓存) |
temp 缓存目录(默认由DATA_CACHE_PATH参数配置) |
|
Apachenote缓存 |
host 缓存服务器地址( 默认为127.0.0.1) |
|
Apc缓存 |
暂无其他参数 |
|
Eaccelerator缓存 |
暂无其他参数 |
|
Xcache缓存 |
暂无其他参数 |
|
Memcache |
host 缓存服务器地址( 默认为127.0.0.1) port 端口(默认为MEMCACHE_PORT参数或者11211) timieout 缓存超时(默认由DATA_CACHE_TIME参数设置) persistent 长连接(默认为false) |
|
Shmop |
size(默认由SHARE_MEM_SIZE参数设置) tmp(默认为TEMP_PATH) project (默认为s) length 缓存队列长度(默认为0) |
|
Sqlite |
db 数据库名称(默认:memory:) table 表名(默认为sharedmemory) persistent 长连接(默认为false) |
|
|
Db |
db 数据库名称(默认由DB_NAME参数配置) table 数据表名称(默认由DATA_CACHE_TABLE参数配置) |
Redis |
host 服务器地址(默认由REDIS_HOST参数配置或者127.0.0.1) port端口(默认由REDIS_PORT参数配置或者6379) timeout 超时时间(默认由DATA_CACHE_TIME配置或者false) persistent长连接(默认为false) |
例如,使用Xcache作为缓存方式,缓存有效期60秒。
$Cache = Cache::getInstance('Xcache',array('expire'=>'60'));
设置缓存参数
实例化缓存类的时候如果没有指定缓存参数,可以通过setOptions方法具体指定:
$Cache->setOptions('temp','ThinkPHP');
具体缓存参数根据不同的缓存方式有所区别。
如果需要获取当前缓存驱动的参数,可以使用:
$value = $Cache->getOptions('temp');
存取缓存数据
$Cache->set('name','ThinkPHP'); // 缓存name数据
$value = $Cache->get('name'); // 获取缓存的name数据
$Cache->rm('name'); // 删除缓存的name数据
或者使用下面的方法是等效的:
$Cache->name = 'ThinkPHP';
$value = $Cache->name;
Unset($Cache->name);
缓存设置方法可以重新指定缓存有效期,例如:
$Cache->set('name','ThinkPHP',3600); // 缓存name数据3600秒