应选Memcached:它是基于libmemcached的C扩展,功能更全、更稳定,支持多服务器集群、SASL认证、更好错误处理及自动序列化;而Memcache是PHP自研的老扩展,已停止维护,PHP 7.2+不兼容,ThinkPHP 5+仅官方支持Memcached。

直接选 Memcached,不建议用 Memcache。
核心区别在底层实现和功能支持
Memcache 是较老的 PHP 扩展,基于 PHP 自研协议封装;Memcached 是基于 libmemcached 的 C 扩展,更稳定、功能更全,比如原生支持:
- 多服务器集群(addServers)
- SASL 认证(适用于生产环境安全接入)
- 更好的错误处理与超时控制
- 自动序列化/反序列化(ThinkPHP 驱动已适配)
ThinkPHP 5 官方驱动只内置 Memcached
TP5 的缓存驱动位于 thinkphp/library/cache/driver/Memcached.php,它调用的是 Memcached 类(注意大小写和末尾 d),而非 Memcache。如果你配置 'type' => 'memcache',框架会报错或回退到文件缓存。
正确配置示例:
立即学习“PHP免费学习笔记(深入)”;
// config/cache.php
'default' => [
'type' => 'memcached',
'host' => '127.0.0.1',
'port' => 11211,
'weight' => 1,
'expire' => 3600,
'prefix' => 'tp5_',
],
扩展安装要求不同
两者需分别安装对应 PHP 扩展,不能混用:
-
Memcached 扩展:需安装
php-memcached(Ubuntu/Debian)或php-pecl-memcached(CentOS/RHEL),依赖系统级libmemcached -
Memcache 扩展:安装
php-memcache,已停止维护,PHP 7.2+ 不再兼容
当前主流 PHP 版本(7.4–8.3)及 ThinkPHP 5.1+ 全面弃用 Memcache 扩展支持。
缓存行为细节也更可靠
比如过期时间设为 0(永久缓存):
- Memcached 驱动能正确识别并传入 0 给服务端;
- 老版 Memcache 驱动常把 0 当作“立即过期”,导致缓存写入即失效——这个 bug 在 TP5 的 Memcached 驱动中已修复。



















