Redis-cli连接正常但Predis报Connection refused错误求助
Redis连接问题排查
我按照Redis官方文档从源码安装了Redis,用redis-cli测试连接正常,但运行以下Predis代码时出现Connection refused错误,请问问题出在哪里?
运行的Predis代码:
Predis\Autoloader::register(); $client = new Predis\Client(); $client->set('foo', 'bar'); $value = $client->get('foo');
相关截图:


可能的原因及解决方法
- Redis绑定地址限制:默认Redis可能仅绑定
127.0.0.1,但PHP运行环境(如Apache/FPM)的网络上下文可能存在差异,或者需要显式指定连接地址。修改redis.conf中的bind配置为bind 0.0.0.0(允许所有IP访问,注意生产环境安全),或明确指定PHP连接127.0.0.1,修改后重启Redis服务。 - Predis默认参数不匹配:Predis默认连接
tcp://127.0.0.1:6379,如果你的Redis修改了端口、使用Unix套接字,需要显式配置连接参数:// 指定TCP地址和端口 $client = new Predis\Client([ 'scheme' => 'tcp', 'host' => '127.0.0.1', 'port' => 6379, ]); // 若使用Unix套接字连接 $client = new Predis\Client([ 'scheme' => 'unix', 'path' => '/var/run/redis/redis.sock', ]); - 防火墙/SELinux拦截:检查系统防火墙是否禁止PHP进程访问6379端口,或SELinux是否拦截了连接请求。可临时关闭防火墙/SELinux测试,或添加相应的访问规则。
- Redis进程状态异常:确认Redis服务正在运行,执行
ps aux | grep redis-server查看进程,或通过systemctl status redis(systemd管理的系统)检查服务状态。
内容的提问来源于stack exchange,提问作者Dangvantri113
相关产品推荐
相关产品推荐

