网站的静态缓存对大访问量有很好的缓解作用,尤其对网站的大并发,可有效的缓解数据库的压力。在thinkphp中实现静态缓存很简单,thinkphp都已经封装好了直接调用即可。

静态缓存

 

  1. 首先设置 HTML_PATH 静态缓存文件目录,默认是在项目的应用目录下如:App/Html

  2. 在前台或后台打开静态缓存

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();

thinkphp3.2开启静态缓存与缓存规则设置的更多相关文章

  1. thinkphp3.2----设置静态缓存

    开启静态缓存后,页面刷新时获取的是静态页面,控制器增加输出内容时页面还是一样,除非超过缓存时间或html结构发生变化才重新生成页面缓存 1.定义静态缓存目录 define("HTML_PAT ...

  2. THinkphp开启静态(动态)缓存的用法

    <?php return array( //开启静态缓存 'HTML_CACHE_ON' => true, 'HTML_CACHE_RULES' => array( 'News:in ...

  3. Thinkphp 缓存和静态缓存局部缓存设置

    1.S方法缓存设置 if(!$rows = S('indexBlog')){ //*$rows = S('indexBlog') $rows = D('blog')->select(); S(' ...

  4. 细说ASP.NET Core静态文件的缓存方式

    一.前言 我们在优化Web服务的时候,对于静态的资源文件,通常都是通过客户端缓存.服务器缓存.CDN缓存,这三种方式来缓解客户端对于Web服务器的连接请求压力的. 本文指在这三个方面,在ASP.NET ...

  5. Nginx实现静态资源的缓存

    1.1   需求 1.对静态文件进行缓存:html,js,css,png,gif,jpg,jpeg,bmp,swf. 2.对符合url规则的请求进行缓存. 3.针对某个url进行清除缓存. 1.1   ...

  6. NET Core静态文件的缓存方式

    NET Core静态文件的缓存方式 阅读目录 一.前言 二.StaticFileMiddleware 三.ASP.NET Core与CDN? 四.写在最后 回到目录 一.前言 我们在优化Web服务的时 ...

  7. Http静态资源的缓存

    最近一段时间一直在研究页面缓存和压缩方面的东西,由于公司服务器使用的是iis6.0,很多性能方面的优化都不支持.所以,就开始尝试着自己写个简单的处理程序. 为了减少服务器带宽的需求,我们要减少客户端与 ...

  8. [转]NET Core静态文件的缓存方式

    本文转自:https://www.cnblogs.com/Leo_wl/p/6059349.html 阅读目录 NET Core静态文件的缓存方式 一.前言 二.StaticFileMiddlewar ...

  9. linux开启swap(磁盘缓存)操作

    转载 2014年04月26日 14:41:15 4470 由于工作需要,要帮助同事查看linux服务器的缓存开启情况,经过查找资料,可确定通过以下方法确定Linux磁盘缓存是否已开启. 1.命令行下执 ...

随机推荐

  1. 51 Free Data Science Books

    51 Free Data Science Books A great collection of free data science books covering a wide range of to ...

  2. a标签伪元素选择器

    a{ color: black; } /*未访问的链接*/ a:link{ color: red; } /*访问过的链接*/ a:visited{ color: green; } /*鼠标经过时*/ ...

  3. jQuery 动态标签生成插件

    前言: 最近对js的插件封装特别感兴趣,无耐就目前的技术想做到js的完全封装,还是有一定困难,就基于jQuery封装了一个小的插件,而且是基于对象级开发的,不是添加全局方法.高深的语法几乎没有,就有一 ...

  4. [转]extern与头文件(*.h)的区别和联系

    用#include可以包含其他头文件中变量.函数的声明,为什么还要extern关键字? 如果我想引用一个全局变量或函数a,我只要直接在源文件中包含#include<xxx.h> (xxx. ...

  5. iOS设备分辨率

    CHENYILONG Blog iOS设备分辨率 © chenyilong. Powered by Postach.io Blog

  6. 防范xss的正确姿势

    防范xss的正确姿势 xss攻击是web攻击中非常常见的一种攻击手段.如果你还没有听说过xss攻击,可以先了解xss的相关知识和原理,例如: XSS)" target="_blan ...

  7. PHP内存溢出 Allowed memory size of 解决办法

    PHP出现如下错误:Allowed memory size of  xxx bytes exhausted at xxx:xxx (tried to allocate xxx bytes)    关于 ...

  8. oracle字符集查看、修改、版本查看

    .1.先查服务端的字符集   或者 2.再查客户端的字符集 两个字符集(不是语言)一致的话就不会乱码了   详细资料 一.什么是Oracle字符集 Oracle字符集是一个字节数据的解释的符号集合,有 ...

  9. JDK1.8源码LinkedList

    引用博文链接 : https://www.cnblogs.com/leskang/p/6029780.html LinkedList继承了 AbstractSequentialList抽象类,而不是像 ...

  10. 【Python学习笔记】Jupyter Lab目录插件安装

    Jupyter Lab目录插件安装 当然首先你得有python和已经安装了jupyter lab. 1 安装jupyter_contrib_nbextensions 首先先安装jupyter_cont ...