复合缓存 complex 模式必须在 config/cache.php 中配置,不能写在其他文件;需返回含 'type' => 'complex' 及多个具名驱动(如 default、redis)的数组,各驱动须正确声明 type、path(file)或 host/port(redis)。

复合缓存 complex 模式的配置位置
ThinkPHP 5(含 5.0/5.1)中,复合缓存必须在 config/cache.php 文件中配置,不能写在 config/app.php 或其他配置文件里。该文件需独立存在、直接返回配置数组,框架启动时会自动加载。
基础配置结构
启用 complex 模式的核心是设置 'type' => 'complex',并定义多个具名缓存驱动(如 default、redis、file 等)。一个典型配置如下:
return [
'type' => 'complex',
'default' => [
'type' => 'file',
'path' => '../runtime/cache/',
'prefix' => 'tp5_',
'expire' => 3600,
],
'redis' => [
'type' => 'redis',
'host' => '127.0.0.1',
'port' => 6379,
'password' => '',
'select' => 0,
'expire' => 0,
'prefix' => 'tp5_redis_',
],
'file_backup' => [
'type' => 'file',
'path' => '../runtime/cache_backup/',
'prefix' => 'backup_',
'expire' => 7200,
],
];
关键配置项说明
- type 必须为 'complex':这是开启复合模式的开关,缺省或错写为 'File'/'Redis' 都会导致整个配置被忽略
-
default 是默认生效的缓存标识:调用
Cache::get()或cache('key')时,若未指定 store,就使用 default 驱动 -
每个子驱动必须有 type 字段:例如
'type' => 'redis',大小写敏感,不能写成 'Redis' 或 'REDIS' -
redis 驱动必须提供 host 和 port:缺少任一将导致连接失败,且
Cache::get()静默返回 null,无异常提示 -
path 对 file 类型是必需的:目录需真实存在且 PHP 进程有写权限;建议用绝对路径或相对于项目根目录的相对路径(如
../runtime/cache/)
如何在代码中切换使用
通过 store() 方法指定缓存标识,即可按需调用不同驱动:
- 写入 redis:
Cache::store('redis')->set('user:100', ['name' => 'Tom'], 3600); - 读取 file:
Cache::store('file_backup')->get('log:20261022'); - 清除某个 store 的全部缓存:
Cache::store('redis')->clear();(实际执行 FLUSHDB) - 带标签操作也支持:
Cache::store('redis')->tag('user')->set('profile', $data);
注意:Cache::clear()(不带 store)只清 default 驱动的缓存,不会影响 redis 或 file_backup。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











