网站的静态缓存对大访问量有很好的缓解作用,尤其对网站的大并发,可有效的缓解数据库的压力。在thinkphp中实现静态缓存很简单,thinkphp都已经封装好了直接调用即可。
静态缓存
-
首先设置 HTML_PATH 静态缓存文件目录,默认是在项目的应用目录下如:App/Html
-
在前台或后台打开静态缓存
|
1
|
'HTML_CACHE_ON' => true, // 开启静态缓存
|
3.设置静态缓存时间
|
1
|
'HTML_CACHE_TIME' => 3600, // 全局静态缓存有效期(秒)
|
4.设置静态缓存后缀
|
1
|
'HTML_FILE_SUFFIX' => '.html', // 设置静态缓存文件后缀
|
5.设置静态缓存规则
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
'HTML_CACHE_RULES' => array( // 定义静态缓存规则
// 定义整个文章控制器
'Article:' => 'Article/{:action}_{id}',
// 对商品进行缓存
'Product:plist' => 'Product/plist_{id}_{pid}',
// 对单个操作进行缓存
'Index:index' => 'Index/index',
'Product:category'=>array('Product/category',0),
), |
缓存规则有很多,可以参考thinkphp3.2的手册,缓存时间设置为0时为永久缓存。
查询缓存
除了静态缓存还有查询缓存也是比较常用的一种缓存方式:
一般情况下这么写就可以缓存了,除了第一次查询外再次查询就直接读缓存
|
1
|
$Model->cache(true)->where('status=1')->select(); |
还可以给这条缓存起名,以便在其他地方读取该缓存
|
1
2
3
4
|
$Model->cache('cache_name')->select();
//读取该缓存$value = S('cache_name');
|
下面是查询缓存配置
|
1
2
3
4
5
6
|
//缓存类型,这里写的是文件缓存'DATA_CACHE_TYPE'=>'File',
//缓存文件前缀'DATA_CACHE_PREFIX' =>'Kangku_',
//缓存时间,秒'DATA_CACHE_TIME' =>600,
|
还可以单独设置缓存方式与缓存时间
|
1
|
$Model->cache(true,60,'file')->select();
|