phpEnv不管理Redis实例,因其定位仅为PHP集成环境,仅含Apache/Nginx、MySQL和PHP,不含Redis服务端;Redis需手动部署为独立Windows服务,每个实例独占端口、配置和进程。

phpEnv 本身不管理 Redis 实例,它只负责 PHP 环境(如多版本 PHP、Apache/Nginx、MySQL),Redis 需要你手动部署并独立运行。直接在 phpEnv 界面里找不到“添加 Redis 实例”按钮,这是正常现象。
为什么 phpEnv 没有 Redis 多实例管理入口
phpEnv 是 Windows 下的集成环境套件(类似 XAMPP),定位是快速搭建 PHP 开发环境,内置组件仅含 Apache/Nginx + MySQL + PHP,**不包含 Redis 服务端**。即使你通过其他方式装了 Redis,phpEnv 也不会识别或接管其生命周期——它既不启动、不监控、也不显示状态。
- 你看到的“Redis”相关选项(如有)通常只是 PHP 的
redis扩展开关,和 Redis 服务本身无关 - phpEnv 启动/停止按钮只影响它自己管理的服务(如 Apache、MySQL),对 redis-server.exe 进程无任何作用
- 若强行把 redis-server.exe 加进 phpEnv 的服务列表,极易因路径、权限、依赖缺失导致启动失败且无日志提示
在 phpEnv 环境下真正可行的多 Redis 实例方案
必须绕过 phpEnv 的服务管理,用 Windows 原生方式部署多个 Redis 实例,并确保 PHP 能连上它们。核心是:**每个实例独占端口 + 独立配置 + 独立 Windows 服务**。
- 复制 Redis 安装目录(如
redis-6379→redis-6380→redis-6381) - 分别编辑各目录下的
redis.windows.conf,修改port和pidfile(如pidfile ./redis_6380.pid),避免冲突 - 以管理员身份运行 CMD,进入每个目录执行:
redis-server --service-install redis.windows.conf --service-name redis-6380 --loglevel verbose
- 再执行:
redis-server --service-start --service-name redis-6380
(对 6381 同理) - 用
services.msc确认三个服务都显示“正在运行”,且监听端口可用(netstat -ano | findstr :6380)
PHP 连接多个 Redis 实例的代码写法
只要端口通、密码对,PHP 就能同时操作多个实例。注意不要复用同一个 Redis 对象,每次连接都要新建实例。
立即学习“PHP免费学习笔记(深入)”;
$redis1 = new Redis();
$redis1->connect('127.0.0.1', 6379);
$redis1->set('app:counter', 100);
$redis2 = new Redis();
$redis2->connect('127.0.0.1', 6380);
$redis2->set('cache:html', '<h1>Hello</h1>');
$redis3 = new Redis();
$redis3->connect('127.0.0.1', 6381);
$redis3->set('session:data', 'xyz123');
- 务必检查
php.ini中已启用extension=php_redis.dll(Windows 下是 .dll 不是 .so) - 如果某实例启用了密码,必须调用
$redisX->auth('your_pass'),否则connect()成功但后续命令报错 - 不要用
pconnect()连不同端口实例——它底层会复用连接池,导致端口混淆和数据错乱
最易被忽略的一点:phpEnv 默认不改系统 PATH,所以你在 CMD 里直接敲 redis-server 可能提示“不是内部或外部命令”。必须 cd 进具体 Redis 目录再执行命令,或者把每个 Redis 的 bin 目录加进系统环境变量 PATH(但不推荐,容易混)。



















