返回
解决 Laravel 中 \
php
2024-03-04 18:39:38
Laravel Redis 连接错误:In PhpRedisConnector.php 行 161:连接被拒绝
在使用 Laravel 配置 Redis 连接时,你可能遇到 "In PhpRedisConnector.php 行 161:连接被拒绝" 错误。这篇文章将引导你逐步解决这个问题,并提供额外的提示和故障排除技巧。
诊断和解决步骤
1. 确认 Redis 正在运行
首先,使用 docker ps
命令检查 Redis 是否正在运行。输出中应该显示一个名为 "redis" 的容器正在运行。
2. 检查 Redis 连接配置
在你的 .env
文件中,确保 Redis 连接配置正确:
- REDIS_HOST :Redis 服务器的 IP 地址或主机名(默认:127.0.0.1)
- REDIS_PORT :Redis 服务器的端口(默认:6379)
- REDIS_PASSWORD :如果 Redis 设置了密码,则为该密码(默认:null)
3. 重启 PHP-FPM
进行任何更改后,需要重启 PHP-FPM 以使更改生效:
sudo systemctl restart php8.1-fpm.service
4. 检查 PHP Redis 扩展
确保 PHP Redis 扩展已正确安装和启用:
php -m | grep redis
输出中应该包含 "redis"。
5. 检查 Laravel Redis 配置
在 config/database.php
文件中,确保 Laravel Redis 配置正确:
- client : 默认使用 "predis" 客户端
- options : 自定义选项(例如,前缀)
- default : 连接详细信息,包括
host
、password
、port
和database
6. 尝试手动连接 Redis
使用以下代码尝试手动连接 Redis:
use Illuminate\Support\Facades\Redis;
$redis = Redis::connection();
if ($redis->ping()) {
echo "Conexión Exitosa";
}
如果连接成功,你应该在控制台中看到 "Conexión Exitosa"。
7. 排除防火墙问题
如果上述步骤都没有解决问题,请检查你的防火墙是否阻止了对 Redis 服务器的连接。
其他提示
- 确保 Redis 服务器使用的是正确的端口。
- 确保 Redis 服务器没有被禁用。
- 如果使用 Docker,确保 Redis 容器和 PHP 容器可以相互通信。
常见问题解答
-
为什么我会收到 "In PhpRedisConnector.php 行 161:连接被拒绝" 错误?
- 连接被拒绝表明 Laravel 无法连接到 Redis 服务器。
-
如何检查 Redis 是否正在运行?
- 使用
docker ps
命令检查是否存在一个名为 "redis" 的容器正在运行。
- 使用
-
我应该在哪些文件中检查 Redis 配置?
- 检查
.env
文件以了解连接配置,检查config/database.php
文件以了解 Laravel Redis 配置。
- 检查
-
我如何手动连接到 Redis?
- 使用 Illuminate\Support\Facades\Redis 类中的
connection()
方法。
- 使用 Illuminate\Support\Facades\Redis 类中的
-
我应该如何排除防火墙问题?
- 确保防火墙允许对 Redis 服务器端口的传入连接。