12.2 动态缓存
匿名 · 更新于 2013/12/26
所有的缓存方式都被统一使用公共的调用接口,这个接口就是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) timeout 缓存超时(默认由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) |
|
$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秒
