ThinkPHP支持文件方式、共享内存方式和数据库方式等缓存方式。
由于ThinkPHP支持多种缓存,因此在使用以前缓存的方式和参数进行配置。php
缓存方式
File、Apachenote、Apc、Eaccelerator、Memcache、Shmop、Sqlite、Db、Redis和Xcache数据库
缓存参数
根据不一样的缓存方式存在不一样的参数缓存
通用缓存参数
expire 缓存有效期(默认由DATA_CACHE_TIME参数配置)
length 缓存队列长度(默认为0)
queue 缓存队列方式(默认为file 还支持xcache和apc)服务器
Memcachetcp
host 缓存服务器地址( 默认为127.0.0.1)
port 端口(默认为MEMCACHE_PORT参数或者11211)
timeout 缓存超时(默认由DATA_CACHE_TIME参数设置)
persistent 长链接(默认为false)post
File(文件缓存)性能
temp 缓存目录(默认由DATA_CACHE_PATH参数配置)spa
获取缓存实例
1. 使用配置文件方式(推荐)
config.phpcode
//缓存方式 'DATA_CACHE_TYPE' =>
'Memcache',
//v\ 缓存服务器地址 'MEMCACHE_HOST' =>
'tcp://127.0.0.1:11211',
//指定默认的缓存时长为3600 秒,没有会出错 'DATA_CACHE_TIME' =>
'3600',
//获取缓存实例 $cache = Cache::getInstance();
2.使用代码的形式获取
$Cache = Cache::getInstance(
'缓存方式',
'缓存参数')
$Cache = Cache::getInstance(
'Memcache',
array(
'host'=>'127.0.0.1',
'port'=>11211)));
$Cache->setOptions(
'expire',
3600);
$Cache->setOptions(
'persistent',
true);
存取缓存数据
缓存实例对象,快捷缓存方式orm
1.经过缓存实例对象进行操做
$Cache->set(
'name',
'ThinkPHP');
// 缓存name数据 $value = $Cache->get(
'name');
// 获取缓存的name数据 $Cache->rm(
'name');
// 删除缓存的name数据
or
$Cache->name
= 'ThinkPHP';
$value = $Cache->name; Unset(
$Cache->name);
2. 快捷缓存方式
使用快捷缓存方式,要求必须已经配置缓存方式
为了进一步简化缓存存取操做,ThinkPHP把全部的缓存机制统一成一个S方法来进行操做,因此在使用不一样的缓存方式的时候并不须要关注具体的缓存细节。
S方法
// 使用data标识缓存$Data数据 S(
'data',
$Data);
// 缓存$Data数据3600秒 S(
'data',
$Data,
3600);
// 获取缓存数据 $Data = S(
'data');
// 删除缓存数据 S(
'data',
NULL);
cache方法
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
$cache = cache(
array(
'type'=>'xcache',
'expire'=>60));
$cache->set(
'name',
$value);
$cache->get(
'name');
$cache->rm(
'name');
or $cache = cache(
array(
'type'=>'xcache',
'expire'=>60));
$cache->name
= $value; echo
$cache->name; unset(
$cache->name);
数据库缓存
1. 数据库查询缓存
对于及时性要求不高的数据查询,咱们可使用查询缓存功能来提升性能,并且无需本身使用缓存方法进行缓存和获取。
$Model->cache(
true)
->select();
$Model->cache(
'cache_name',
60)
->select();
2. SQL解析缓存
由于ThinkPHP的ORM机制,全部的SQL都是动态生成的,而后由数据库驱动执行。
因此若是你的应用有大量的SQL查询需求,那么能够开启SQL解析缓存以减小SQL解析提升性能。
'DB_SQL_BUILD_QUEUE' =>
'xcache',