ThinkPHP 5的数据缓存是将结构化数据临时存入高速存储介质以加速访问,操作对象为数据本身而非页面;核心为键值对、序列化、过期控制与驱动抽象,支持File/Redis等后端切换。

ThinkPHP 5 的数据缓存,是指将数据库查询结果、计算值、配置项等**结构化数据**临时存入高速存储介质(如内存、文件、Redis),下次需要时直接读取,跳过原始计算或数据库查询过程。
它不是页面缓存,也不是静态 HTML
数据缓存操作的是「数据本身」,比如一条用户记录、一个分类列表、一段 JSON 配置。它不关心模板渲染,也不生成 .html 文件,而是为 PHP 代码提供更快的数据访问路径。
典型使用场景
- 高频低变查询:文章列表、地区字典、站点配置等读多写少的数据
- 耗时计算结果:统计总数、聚合报表、接口签名验证缓存
- 避免重复加载:把 config('database') 或 env() 读取结果缓存,减少文件 I/O
-
模型层加速:配合
db()->cache()在查询时自动落缓存,后续同条件查询直接命中
底层原理简明说
核心是「键值对 + 过期控制 + 驱动抽象」:
- 用唯一键(如
user_123、config_site)标识数据,支持自定义前缀防冲突 - 数据序列化后存入指定驱动(File/Redis/Memcached),读取时反序列化还原
- 写入时指定有效期(秒),超时后自动失效;也可设为 0 表示永不过期(需手动清理)
- 所有驱动统一通过
Cache::set()/Cache::get()调用,切换 Redis 只需改配置,不用动业务代码
和数据库查询缓存(cache() 方法)的关系
模型或 Db 类的 cache(true) 是数据缓存的一种快捷封装。它会自动生成键名(如基于 SQL MD5)、自动序列化结果,并在更新/删除同表数据时尝试清除对应缓存——本质仍是调用底层 Cache 类,属于数据缓存的上层应用方式。
立即学习“PHP免费学习笔记(深入)”;



















