6请求缓存
未知
2021-07-04 10:35:58
0

请求缓存

支持请求缓存功能,支持对GET请求设置缓存访问,并设置有效期。

请求缓存仅对GET请求有效

有两种方式可以设置请求缓存:

路由设置

可以在路由规则里面调用cache方法设置当前路由规则的请求缓存,例如:

// 定义GET请求路由规则 并设置3600秒的缓存
Route::get('new/:id','News/read')->cache(3600);
复制

第二次访问相同的路由地址的时候,会自动获取请求缓存的数据响应输出,并发送304状态码。

默认请求缓存的标识为当前访问的pathinfo地址,可以定义请求缓存的标识,如下:

// 定义GET请求路由规则 并设置3600秒的缓存
Route::get('new/:id','News/read')->cache(
	[ 'new/:id/:page', 3600]
);
复制

:id:page表示使用当前请求的param参数进行动态标识替换,也就是根据idpage变量进行3600秒的请求缓存。

如果cache参数传入false,则表示关闭当前路由的请求缓存(即使开启全局请求缓存)。

// 定义GET请求路由规则 并关闭请求缓存(即使开启了全局请求缓存)
Route::get('new/:id','News/read')->cache(false);
复制

支持给一组路由设置缓存标签

// 定义GET请求路由规则 并设置3600秒的缓存
Route::get('new/:id','News/read')->cache(
	[ 'new/:id/:page', 3600, 'page']
);
复制

这样可以在需要的时候统一清理缓存标签为page的请求缓存。

全局请求缓存

如果需要开启全局请求缓存,只需要在全局(或者应用)的中间件定义文件middleware.php中增加

 'think\middleware\CheckRequestCache',
复制

然后只需要在route.php配置文件中设置全局缓存的有效时间(秒):

'request_cache_expire'	=>	3600,
复制

就会自动根据当前请求URL地址(只针对GET请求类型)进行请求缓存,全局缓存有效期为3600秒。

如果需要对全局缓存设置缓存规则,可以直接设置request_cache_key参数,例如:

'request_cache_key'	=>	'__URL__',
'request_cache_expire'	=>	3600,
复制

缓存标识支持下面的特殊定义

标识 含义
__CONTROLLER__ 当前控制器名
__ACTION__ 当前操作名
__URL__ 当前完整URL地址(包含域名)

全局请求缓存支持设置排除规则,使用方法如下:

'request_cache_key'        => true,
'request_cache_expire' => 3600,
'request_cache_except' => [
    '/blog/index',
    '/user/member',
],
复制

排除规则为不使用请求缓存的地址(不支持变量)开头部分(不区分大小写)。

路由中设置的请求缓存依然有效并且优先,如果需要设置特殊的请求缓存有效期就可以直接在路由中设置。

上一篇:6参数绑定

下一篇:6响应输出

相关内容

MySQL变量定义与初始化
MySQL变量分为系统变量和用户定义变量,用于存储数据和配置参数。...
2024-11-20 19:00:42
如何使用MySQL变量进行...
本文详细介绍了MySQL中用户定义变量、系统变量和局部变量的使用方...
2024-11-20 18:46:45
K8s在云服务器上的资源管...
K8s作为开源容器编排系统,在云服务器上实现自动化资源管理,提高运...
2024-11-20 17:23:38
普通索引与唯一索引的区别
摘要:普通索引与唯一索引在数据库中用于加速查询和保证数据唯一性。普...
2024-11-20 07:23:33
缓存策略与MySQL索引优...
摘要:本文探讨MySQL缓存策略和索引优化的重要性及其协同作用,强...
2024-11-20 06:46:36
fastadmin阿里云存...
fastadmin阿里云存储oss的设置
2024-11-20 06:17:41

热门资讯

tp6开发规范 命名规范 请理解并尽量遵循以下命名规范,可以减少在开发过程中出现不必要的错误。 ThinkPHP6....
6高级查询 快捷查询 快捷查询方式是 一种多字段相同查询条件 的简化写法,可以进一步简化查询条件的写法,在多个字...
tp6多应用提示控制器不存在:... 第一个情况是没有使用composer安装扩展。 如果要使用多应用模式, 你需要win+r,cmd指针...
6配置 配置目录 单应用模式 对于单应用模式来说,配置文件和目录很简单,根目录下的 config 目录下面就...
6异常处理 和PHP默认的异常处理不同,ThinkPHP抛出的不是单纯的错误信息,而是一个人性化的错误页面。 异...
6swoole 本篇内容主要讲述了最新的 think-swoole 扩展的使用。目前仅支持Linux环境或者MacO...
6助手函数 助手函数 系统为一些常用的操作方法封装了助手函数,便于使用,包含如下: 助手函数 描述 abort ...
6查询表达式 查询表达式 查询表达式支持大部分的SQL查询语法,也是 ThinkPHP 查询语言的精髓,查询表达式...
6路由参数 路由参数 路由分组及规则定义支持指定路由参数,这些参数主要完成路由匹配检测以及后续行为。 路由参数可...
6查询 模型查询和数据库查询方法的区别主要在于,模型中的查询的数据在获取的时候会经过获取器的处理,以及更加对...