ubuntu上thinkphp缓存怎么设置
作者:若安舟已远
时间:2026-05-24
浏览:0
在Ubuntu系统中为ThinkPHP配置缓存,需先选择并安装缓存驱动如Redis或Memcached,并进行服务与PHP扩展安装。随后在框架配置文件内设置连接参数。文章以Redis和Memcached为例,展示了ThinkPHP3.2至6.0版本的配置方法,并介绍了基本缓存操作、标签使用及生产环境下的集群部署与性能优化建议。
本文目录
Ubuntu 上 ThinkPHP 缓存设置指南

在Ubuntu环境下为ThinkPHP项目配置缓存,是提升应用性能的关键一步。今天,咱们就来把这事儿捋清楚,从环境准备到集群运维,让你手到擒来。
一 环境准备
万事开头先选型。缓存驱动怎么选?常见的无非是File(默认)、Redis、Memcached这几位。选定了驱动,接下来就是安装和配置的硬核操作了。
- 选择缓存驱动:常见为 File(默认)、Redis、Memcached。
- 安装对应服务与扩展:
- Redis:安装服务
sudo apt-get install redis-server,PHP 扩展sudo apt-get install php-redis,安装完成后,别忘了用php -m | grep redis验证一下扩展是否加载成功。 - Memcached:安装服务
sudo apt-get install memcached,PHP 扩展sudo apt-get install php-memcached(这里有个关键点:注意是 memcached 扩展,不是老旧的 memcache)。
- Redis:安装服务
- 框架侧配置路径:
- ThinkPHP 6:配置主战场在
config/cache.php,主要设置default与stores。 - ThinkPHP 5.1:配置位于
application/config.php的cache项中。 - ThinkPHP 3.2:配置在
Common/Conf/config.php中,需要设置如DATA_CACHE_TYPE、MEMCACHE_HOST等参数。
- ThinkPHP 6:配置主战场在
二 配置示例
光说不练假把式,直接上代码最实在。不同版本的ThinkPHP,配置写法略有差异,咱们一个个看。
- ThinkPHP 6(Redis 示例)
// config/cache.php return [ 'default' => 'redis', 'stores'=> [ 'redis' => [ 'type' => 'redis', 'host' => '127.0.0.1', 'port' => 6379, 'password' => '', // 有密码请填写 'select' => 0, 'timeout'=> 30, 'expire' => 3600, // 默认有效期(秒) 'persistent' => false, // 是否长连接 ], ], ]; - ThinkPHP 5.1(Redis 示例)
// application/config.php return [ 'cache' => [ 'type' => 'redis', 'host' => '127.0.0.1', 'port' => 6379, 'prefix' => 'think_', 'expire' => 3600, ], ]; - ThinkPHP 3.2(Memcache 示例)
// Common/Conf/config.php return [ 'DATA_CACHE_TYPE' => 'Memcache', 'MEMCACHE_HOST'=> 'tcp://10.20.50.2:11211', // 内网地址 'DATA_CACHE_TIME' => 3600, ]; - 多驱动与标签(通用)
// 复合缓存:默认 file,按场景切换到 redis 'type'=> 'complex', 'default' => ['type' => 'file', 'path' => '../runtime/default'], 'redis' => ['type' => 'redis', 'host' => '127.0.0.1'], // 使用标签 Cache::tag('tag1')->set('k1','v1',3600); Cache::tag('tag1')->clear();
以上示例涵盖了Redis和Memcached在Ubuntu下的常见配置方式,同时清晰地展示了TP5.1与TP6的配置差异,以及灵活的多驱动用法。
三 常用操作
配置好了,怎么用?ThinkPHP提供了非常清晰和强大的缓存操作API,咱们来熟悉一下。
- 基本用法(TP6 示例)
use think\facade\Cache; Cache::set('name', 'ThinkPHP6', 3600); $val = Cache::get('name', ''); if (Cache::has('name')) Cache::delete('name'); Cache::clear(); - 指定驱动与标签
// 指定 Redis 存储 Cache::store('redis')->set('name', 'value', 3600); // 标签批量清理 Cache::tag('tag1')->set('k1','v1'); Cache::tag('tag1')->clear(); - 助手函数(TP5.1/TP6 均可用)
// 设置/获取/删除 cache('k', 'v', 600); $v = cache('k'); cache('k', null);
这些API与助手函数,无论是TP5.1还是TP6,都能帮你轻松搞定缓存的读写和标签管理。
四 集群与运维建议
单机玩转之后,面对生产环境的集群和运维挑战,咱们也得心中有数。这里有几个关键建议,能帮你避开不少坑。
- 多服务器/集群:优先使用Redis、Memcached这类集中式缓存服务。为啥?就是为了避免使用文件缓存时可能遇到的inode耗尽问题,以及多节点间数据不一致的麻烦。以Memcached为例,启动时建议绑定内网IP并限制访问来源,命令可以这样写:
memcached -d -m 1024 -p 11211 -l 10.20.50.2。 - 连接与容错:给Redis或Memcached配置合理的超时时间、重试策略以及连接池,这是保障服务稳定性的基础。生产环境强烈建议开启持久化(比如Redis的RDB或AOF)并配置好监控告警。
- 键命名与隔离:统一键名前缀,并按照业务或模块划分不同的数据库或前缀。这个小习惯,能有效避免键名冲突和误删数据的风险。
- 缓存穿透/击穿/雪崩:这是缓存系统的经典难题。应对策略包括:对热点数据设置永不过期或随机过期时间;结合互斥锁或队列来重建缓存;使用布隆过滤器预先过滤掉无效请求。把这些组合拳打好,系统的抗压能力会大大增强。
作者最新文章
漫蛙漫画网页下载安装包
2026-10-13 13:19
WPS 表格单元格内换行快捷键是什么
2026-10-10 15:48
Word格式转换成PDF?Word转PDF的具体步骤是什么?
2026-09-02 19:14
浏览器保存网页为PDF的实用技巧
2026-08-28 11:44
Switch520全球白嫖网入口链接2025
2026-08-28 11:17
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多










































