thinkphp 5 使用 memcache 缓存需完成三步:安装并启动 memcached 服务、配置 php 的 memcache 扩展、在 tp5 中正确设置缓存驱动和连接参数;关键在于驱动可用、服务可达、参数匹配。

ThinkPHP 5 使用 Memcache 缓存需完成三步:安装并启动 Memcached 服务、配置 PHP 的 Memcache 扩展、在 TP5 中正确设置缓存驱动和连接参数。关键不在“改个配置就行”,而在于驱动可用、服务可达、参数匹配。
确认 Memcached 服务已运行
TP5 无法连接 Memcache,90% 是服务未启动或监听地址不对。先验证本地是否可通:
- Linux 下执行:
ps aux | grep memcached看进程是否存在 - 用 telnet 测试连通性:
telnet 127.0.0.1 11211(默认端口),成功会显示Connected - 若监听的是
0.0.0.0或其他 IP,请确保防火墙放行对应端口 - Windows 用户注意:Memcached 官方不支持 Windows,建议使用 WSL 或 Docker 启动
配置 PHP 的 Memcache 扩展
TP5 的 memcache 驱动依赖 PHP 的 memcache 扩展(非 memcached),两者不兼容:
- Linux:编译安装
pecl install memcache,并在php.ini加extension=memcache.so - Windows:下载对应 PHP 版本的
php_memcache.dll(注意线程安全 TS/NTS 匹配),加到ext目录,并在php.ini中启用:extension=php_memcache.dll - 执行
php -m | grep memcache或查看phpinfo()确认扩展已加载
TP5 应用中配置 Memcache 驱动
在应用配置文件 config/cache.php(或 app/config.php 的 cache 节点)中写入:
'cache' => [
'type' => 'memcache',
'host' => '127.0.0.1',
'port' => '11211',
'expire' => 3600,
'prefix' => 'tp5_',
],
也可在控制器中动态连接(适合多实例场景):
use think\Cache;
$config = [
'type' => 'memcache',
'host' => '192.168.1.100',
'port' => 11211,
'expire' => 600,
];
$cache = Cache::connect($config);
$cache->set('user_100', ['name' => '张三'], 600);
echo $cache->get('user_100')['name'];
验证缓存是否生效
避免只看代码配置,务必实测读写:
- 写入后立即读取:
cache('test_key', 'hello world', 300); var_dump(cache('test_key')); - 清空后读取为
null表示缓存已清除 - 若始终返回
null或报错Class 'Memcache' not found,说明扩展未加载成功 - 若报错
Connection refused,说明 Memcached 服务未运行或地址/端口错误
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











