【Azure Redis 缓存】应用中出现连接Redis服务错误(production.ERROR: Connection refused)的排查步骤

发布时间 2023-06-21 19:51:00作者: 路边两盏灯

问题描述

在PHP应用中,连接Redis的方法报错  RedisException(code: 0): Connection refused at /data/Redis/Connectors/PhpRedisConnector.php

production.ERROR: Connection refused {"exception":"[object] (RedisException(code: 0): Connection refused at /data/Redis/Connectors/PhpRedisConnector.php:153)
[stacktrace]
#0 /data/Redis/Connectors/PhpRedisConnector.php(153): Redis->connect()
#1 /data/Redis/Connectors/PhpRedisConnector.php(84): \\Redis\\Connectors\\PhpRedisConnector->establishConnection()
#2 /data/Support/helpers.php(263): \\Redis\\Connectors\\PhpRedisConnector->\\Redis\\Connectors\\{closure}()
#3 /data/Redis/Connectors/PhpRedisConnector.php(121): tap()
#4 /data/Redis/Connectors/PhpRedisConnector.php(28): \\Redis\\Connectors\\PhpRedisConnector->createClient()
#5 /data/Redis/Connectors/PhpRedisConnector.php(32): \\Redis\\Connectors\\PhpRedisConnector->\\Redis\\Connectors\\{closure}()
#6 /data/Redis/RedisManager.php(112): \\Redis\\Connectors\\PhpRedisConnector->connect()

问题解答

Redis 中的错误消息“ Connection refused (连接被拒绝)”通常表示 Redis 服务器不接受传入连接。

此错误可能是由多种原因引起的,例如网络连接问题、防火墙限制或 Redis 服务器关闭。

可以尝试以下步骤来排查问题:

1:  验证 Redis 服务器是否正在运行并接受连接。通过运行以下命令来检查 Redis 服务器的状态:“redis-cli ping”。如果 Redis 服务器正在运行,则应返回“PONG”

 

2:  检查是否有任何防火墙限制阻止与 Redis 服务器的连接。可以尝试暂时禁用防火墙,看看它是否能解决问题。Redis 服务端的设置参考:https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-network-isolation#azure-firewall-rules

 

3: 验证 Redis 服务器是否配置为侦听正确的 IP 地址和端口。可以检查应用中 Redis 配置文件 (redis.conf) 以确保“绑定”和“端口”设置正确。(如果应用之前正常运行的情况下,可以忽略此点)

 

4: 检查客户端和 Redis 服务器之间是否存在任何网络连接问题。尝试从客户端计算机 ping Redis 服务器,以查看是否存在任何网络连接问题。参考:https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-troubleshoot-connectivity#test-connectivity-using-psping

 

 

 

[END]