ubuntu上thinkphp缓存怎么设置
在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)并配置好监控告警。
- 键命名与隔离:统一键名前缀,并按照业务或模块划分不同的数据库或前缀。这个小习惯,能有效避免键名冲突和误删数据的风险。
- 缓存穿透/击穿/雪崩:这是缓存系统的经典难题。应对策略包括:对热点数据设置永不过期或随机过期时间;结合互斥锁或队列来重建缓存;使用布隆过滤器预先过滤掉无效请求。把这些组合拳打好,系统的抗压能力会大大增强。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















