TP5里咋用Redis来做缓存,调用方法和步骤简单说说
- 问答
- 2026-01-05 02:19:09
- 22
先把环境准备好
你想用Redis,首先得确保你服务器上已经安装并运行了Redis服务,这个就跟用MySQL之前得先安装MySQL是一个道理,如果你用的是本地开发环境,比如PHPStudy之类的集成包,通常里面都自带Redis,你把它启动起来就行了,如果是云服务器,可能需要自己安装配置一下,确保Redis服务在跑着,这是基础。
是你的TP5项目,TP5框架本身已经内置了缓存功能,并且支持多种缓存方式,Redis是其中之一,所以理论上你不需要额外安装什么插件,直接用框架提供的能力就行。
第二步:配置连接信息
光有Redis服务还不行,你的TP5项目得知道怎么去连接这个Redis服务,这个连接信息写在配置文件里,TP5的缓存配置文件通常是 application/config.php 里的 cache 部分,或者有一个独立的 application/extra/cache.php 文件,推荐用后者,这样比较清晰。
你需要打开这个配置文件,找到 type 这个参数,把它改成 redis,光改类型还不够,还得告诉它Redis服务器在哪,所以还要配置 host(服务器地址,本地一般是127.0.0.1)、port(端口,默认是6379)、password(密码,如果你给Redis设了密码的话)、select(选择哪个Redis数据库,默认有0-15共16个,一般用0)这些信息。
配置完大概是这样子(以 cache.php 为例):
return [
'type' => 'redis',
'host' => '127.0.0.1',
'port' => 6379,
'password' => '', // 没密码就空着
'select' => 0,
'timeout' => 0, // 连接超时时间
'persistent' => false, // 是否使用长连接
];
这样配置好之后,TP5就知道该去哪里找Redis了。
第三步:在代码里调用缓存方法
配置妥当,就可以在写业务代码的时候用了,TP5提供了一个叫 Cache 的助手函数,用起来非常方便,主要就是几个操作:存缓存、取缓存、删缓存。
-
存缓存(写): 使用
Cache::set('键名', '值', 有效期),你想把查询到的用户数据缓存起来,缓存10分钟。// 假设从数据库查出了一条用户数据 $userData = Db::name('user')->find(1); // 把它存到Redis缓存里,键名是 'user_1',有效期600秒(10分钟) cache('user_1', $userData, 600);这里
cache()函数就是Cache::set的快捷方式,键名你自己起,要唯一;值可以是数字、字符串、数组等等;有效期单位是秒。 -
取缓存(读): 使用
Cache::get('键名'),当需要用到这个数据时,先去缓存里找。// 尝试从缓存读取键名为 'user_1' 的数据 $userInfo = cache('user_1'); // 判断一下缓存是否存在 if (empty($userInfo)) { // 如果缓存里没有,那就去数据库查 $userInfo = Db::name('user')->find(1); // 并且把新查到的数据再设置到缓存里,方便下次用 cache('user_1', $userInfo, 600); } // 这时候 $userInfo 就是可用的数据了,不管来自缓存还是数据库这个“先读缓存,没有再读数据库并写入缓存”的模式,是最常用的。
-
删缓存(删): 当数据发生变化时(比如用户修改了个人信息),为了保证缓存的数据是最新的,你需要把旧的缓存删掉。
// 删除键名为 'user_1' 的缓存 cache('user_1', null);这样下次再请求用户数据时,就会发现缓存没了,于是去数据库读取新的数据并重新创建缓存。
除了这三个基本操作,还有一些其他的常用方法,Cache::has('键名') 判断缓存是否存在;Cache::inc('键名') 给缓存的数字值增加1,常用于计数;Cache::clear() 清空所有缓存(慎用!)等等,具体可以查一下TP5的官方手册。
需要注意的几个小地方
- 序列化:你存进Redis的数组或对象,TP5会自动帮你序列化(转换成字符串存储),取的时候再自动还原,所以你不用自己处理这个过程。
- 键名冲突:给你的缓存键名起个好名字,最好有点规律,
模块_控制器_操作_ID这种形式,避免不同地方的同名数据互相覆盖。index_user_profile_1。 - 缓存失效时间:设多久合适要看业务,变化不频繁的可以设长点,比如一天;变化频繁的设短点,比如几分钟,或者在一些更新数据的地方主动删除缓存。
- Redis扩展:确保你的PHP环境安装了Redis扩展,你可以在
phpinfo()页面里搜一下看看有没有redis字样,没有的话需要安装一下。
在TP5里用Redis缓存就三步:配好连接信息、用 cache() 函数进行读写删操作、注意一下缓存的有效期和更新策略,整个过程其实就是在数据库前面加了一个更快的“临时仓库”,大部分时候先从这个临时仓库拿东西,拿不到再去数据库大本营取,从而让网站速度变快,多写几次就熟练了。

本文由寇乐童于2026-01-05发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:https://www.haoid.cn/wenda/74683.html
