ThinkPHP5.1.41启用请求缓存需三步:一、配置可用缓存驱动(如file/redis);二、开启request_cache并设有效期;三、在middleware.php中启用CheckRequestCache中间件,仅对GET/HEAD生效。

ThinkPHP5.1.41开启中间件缓存,核心是启用「请求缓存中间件」并正确配置缓存驱动,不是简单打开开关就能生效。它本质是为整个HTTP请求生命周期做缓存(比如首页、列表页等GET接口),由框架自动拦截重复请求、返回已缓存响应,不执行控制器逻辑。
你需要做三件事:
确认缓存驱动已就绪
检查config/cache.php中默认缓存类型是否可用:
✅ 推荐用type => 'file'(无需额外扩展,适合开发/小流量)
✅ 或已配好redis/memcached(需对应PHP扩展已启用、连接正常)
❌ 不要留着未配置的type => 'redis'却没装扩展,否则缓存会静默失效-
开启请求缓存功能
修改config/app.php,确保以下配置存在且为true:'request_cache' => true, 'request_cache_expire'=> 3600, // 缓存有效期,单位秒(可选,默认3600) 'request_cache_key' => '', // 可选,自定义缓存键前缀(如 'req_')
-
启用缓存中间件
打开app/middleware.php,把\think\middleware\CheckRequestCache::class这行取消注释(或添加进去):return [ \think\middleware\CheckRequestCache::class, // 其他中间件…… ];注意:该中间件只对 GET 和 HEAD 请求生效,且要求路由未设置
cache:0等禁用规则;POST/PUT/DELETE 默认不缓存。
如果用了自定义路由(如 route/route.php 中定义的闭包路由),还需显式加缓存控制:
立即学习“PHP免费学习笔记(深入)”;
Route::get('index', 'Index/index')->cache(3600);不复杂但容易忽略。



















