thinkphp 5内置多种缓存驱动,包括file、redis、memcache、sqlite、wincache、apc、xcache和db,支持通过配置切换而无需修改业务代码;还提供complex复合缓存模式,可按需调度多驱动。

ThinkPHP 5 支持多种缓存类型,无需额外安装插件即可开箱使用。核心是通过统一的 Cache 接口调用,底层由不同驱动实现,切换只需改配置,业务代码完全不用动。
内置支持的缓存类型
官方明确支持以下缓存驱动(大小写不敏感,配置中用小写):
- file:文件缓存,最常用,默认方式,适合开发和中小型项目
- redis:基于 Redis 服务的高性能缓存,支持字符串、哈希、列表等数据结构
- memcache / memcached:兼容 Memcached 协议的内存缓存
- sqlite:基于 SQLite 数据库的轻量级持久化缓存
- wincache:Windows 环境下 IIS + PHP 的专用共享内存缓存
- apc / apcu:APC 或 APCu 扩展提供的用户缓存(需 PHP 启用对应扩展)
- xcache:XCache 扩展缓存(较老环境可能使用)
-
db:数据库缓存,将缓存数据存入指定数据表(如
think_cache)
复合缓存(complex)模式
TP5 允许同时配置多个缓存驱动,并用 complex 类型做统一调度:
- 可设一个默认缓存(如
default为 file),用于常规Cache::get()调用 - 按需切换到其它驱动,例如
Cache::store('redis')->set('key', $val) - 适合读多写少场景:热数据走 Redis,冷数据降级到 File 或 SQLite
注意要点
不是所有类型在任意环境下都可用:
- Redis、Memcache、APCu 等需对应 PHP 扩展已启用并正确配置 host/port
- File 缓存依赖
runtime/cache/目录可写 - SQLite 需有写权限的数据库文件路径;Db 缓存需确保对应数据表存在且可读写
- Wincache 和 Xcache 仅限特定服务器环境,现代项目中已较少使用
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











