Ubuntu 上 ThinkPHP 缓存设置指南
一 环境准备
sudo apt-get install redis-server,PHP 扩展 sudo apt-get install php-redis,用 php -m | grep redis 验证。sudo apt-get install memcached,PHP 扩展 sudo apt-get install php-memcached(注意是 memcached 扩展,非 memcache)。config/cache.php 配置 default 与 stores。application/config.php 的 cache 项中配置。Common/Conf/config.php 中设置如 DATA_CACHE_TYPE、MEMCACHE_HOST 等。二 配置示例
// 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, // 是否长连接
],
],
];
// application/config.php
return [
'cache' => [
'type' => 'redis',
'host' => '127.0.0.1',
'port' => 6379,
'prefix' => 'think_',
'expire' => 3600,
],
];
// 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 的配置差异与多驱动用法。
三 常用操作
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();
// 设置/获取/删除
cache('k', 'v', 600);
$v = cache('k');
cache('k', null);
以上 API 与助手函数适用于 TP5.1/TP6 的常见缓存读写与标签管理。
四 集群与运维建议
memcached -d -m 1024 -p 11211 -l 10.20.50.2。