ThinkPHP3.0完全开发手册                                           

 

12.2               动态缓存

所有的缓存方式都被统一使用公共的调用接口,这个接口就是Cache缓存类。

缓存类的使用很简单,首先实例化缓存类:

$Cache = Cache::getInstance('缓存方式','缓存参数');

缓存方式

可以支持FileApachenoteApcEacceleratorMemcacheShmopSqliteDbRedisXcache

缓存参数

(根据不同的缓存方式存在不同的参数)

通用缓存参数

expire 缓存有效期(默认由DATA_CACHE_TIME参数配置)

length 缓存队列长度(默认为0

queue 缓存队列方式(默认为file 还支持xcacheapc

缓存方式

额外支持的缓存参数

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

 


NetPc