网站的静态缓存对大访问量有很好的缓解作用,尤其对网站的大并发,可有效的缓解数据库的压力。在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. 通过Class类获取对象实例

    通过Class对象获取对象的方式是通过class.newInstance()方式获取,通过调用默认构造参数实例化一个对象. /** * Created by hunt on 2017/6/27. * ...

  2. Entity Framework(EF的Model First方法)

    EntityFramework,是Microsoft的一款ORM(Object-Relation-Mapping)框架.同其它ORM(如,NHibernate,Hibernate)一样, 一是为了使开 ...

  3. VUE常用指令总结!

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 【Eclipse】eclipse生成类图、类交互图、包依赖图

    今天,在修改毕设论文的时候需要画类图,系统已经开发完成,如果手动拿PowerDesigner画类图太浪费时间,于是通过网上查阅资料发现eclipse可以集成一个插件生成类图,也可以生成包图.现在做记录 ...

  5. 终端多窗口分屏Terminator

    1.安装 Terminator最大的特点就是可以在一个窗口中打开多个终端 sudo apt-get install terminator 2.快捷键 Ctrl+Shift+E 垂直分割窗口 Ctrl+ ...

  6. 5 - django-csrf-session&cookie

    目录 1 CSRF跨站请求伪造 1.1 CSRF攻击介绍及防御 1.2 防御CSRF攻击 1.2.1 验证 HTTP Referer 字段 1.2.2 在请求地址中添加 token 并验证 1.2.3 ...

  7. cocos2d-x 日志...

    cocos2d-x  日志... http://blog.csdn.net/themagickeyjianan/article/details/39008297http://blog.csdn.net ...

  8. Mac上删除不了的文件,Windows上也粉碎不了怎么办?

    推荐一个Mac上的软件:Tuxera Disk Manager 用法很简单:选择删除文件原来所在的文件进行维护就可以了. 维护之后,在废纸篓中清除,成功.

  9. 在Mac上搭建ReactNative开发环境

    1.安装Homebrew,   Mac系统的包管理器,用于安装NodeJS和一些其他必需的工具软件. /usr/bin/ruby -e "$(curl -fsSL https://raw.g ...

  10. IIS 启用https

    参考:http://www.cnblogs.com/dudu/p/iis_https_ca.html