phpenv是常用的PHP多版本管理工具,很多开发者在本地开发时都会选择它来快速切换不同的PHP运行环境。在phpenv环境中,本身就集成了Memcached服务和相关PHP扩展,不需要额外去官网下载安装包,就能快速启用缓存能力。

一、开启phpenv自带的Memcached服务
首先我们需要确认当前phpenv的安装路径,不同系统的默认安装路径会有区别,一般macOS系统下默认路径是~/.phpenv,Linux系统下可能是/usr/local/phpenv。可以通过终端执行以下命令查看phpenv的根目录:
# 查看phpenv根目录 phpenv root
找到phpenv目录后,进入其自带的Memcached服务目录,一般路径为phpenv根目录/versions/当前PHP版本/lib/memcached,执行启动命令即可开启服务:
# 进入当前PHP版本对应的memcached目录 cd ~/.phpenv/versions/8.1.0/lib/memcached # 启动memcached服务,默认端口11211,分配64M内存 ./memcached -d -m 64 -p 11211 -u root
如果需要自定义服务端口或者内存大小,可以调整命令中的-p和-m参数。启动后可以通过ps aux | grep memcached命令查看服务是否正常运行。
二、配置PHP的Memcached扩展
服务启动后,还需要确认PHP已经加载了Memcached扩展,phpenv自带的扩展一般在phpenv根目录/versions/当前PHP版本/lib/php/extensions目录下。我们可以通过以下步骤启用扩展:
- 首先查看当前PHP的配置文件路径,执行
php --ini命令,找到Loaded Configuration File对应的路径 - 编辑php.ini文件,添加扩展配置
- 重启phpenv的PHP服务使配置生效
具体的配置代码如下:
# 查看php.ini路径 php --ini # 编辑php.ini,在文件末尾添加以下内容 extension=memcached.so # 重启phpenv的php-fpm服务(如果是fpm模式) phpenv restart
配置完成后,执行php -m | grep memcached命令,如果输出memcached字样,说明扩展已经成功加载。
三、Memcached基础使用示例
扩展和服務都就绪后,就可以在PHP代码中操作Memcached了,以下是几个常用的操作示例:
1. 连接Memcached服务
<?php
// 创建Memcached实例
$memcached = new Memcached();
// 连接本地11211端口的服务
$connectResult = $memcached->addServer('127.0.0.1', 11211);
if ($connectResult) {
echo "Memcached连接成功";
} else {
echo "Memcached连接失败";
}
2. 写入和读取缓存数据
<?php
$memcached = new Memcached();
$memcached->addServer('127.0.0.1', 11211);
// 写入缓存,键为test_key,值为hello memcached,过期时间3600秒
$memcached->set('test_key', 'hello memcached', 3600);
// 读取缓存
$value = $memcached->get('test_key');
echo "读取到的缓存值:" . $value; // 输出hello memcached
3. 删除和清空缓存
<?php
$memcached = new Memcached();
$memcached->addServer('127.0.0.1', 11211);
// 删除指定键的缓存
$memcached->delete('test_key');
// 清空所有缓存
$memcached->flush();
四、常见问题排查
如果在使用过程中遇到连接失败的问题,可以先排查以下几个点:
- 确认Memcached服务是否正常运行,执行
netstat -an | grep 11211查看端口是否监听 - 确认PHP扩展是否加载成功,执行
php -m查看扩展列表 - 确认代码中连接的服务地址和端口是否和启动的Memcached服务一致
另外需要注意,Memcached是内存缓存服务,服务重启后所有缓存数据都会丢失,不适合存储需要持久化的数据。
phpenvMemcachedphp缓存memcached扩展修改时间:2026-06-13 05:48:39