本文提供将客户端应用程序连接到 Azure 托管 Redis 的故障排除帮助。 连接问题分为两种类型:间歇性连接问题和持续连接问题。
- 间歇性连接问题
- 持续连接问题
- 使用 redis-cli 测试连接
- 使用 PSPING 测试连接
- 专用终结点配置
- 防火墙规则
- 公共 IP 地址变更
间歇性连接问题
客户端应用程序可能由于修补或连接数量激增等事件而出现间歇性连接问题。
服务器维护
有时,缓存会进行计划内或计划外服务器维护。 在维护期间,应用程序可能会受到负面影响。 若要尽量降低故障转移的影响,请参阅连接复原能力。
连接的客户端数
检查 Connected Clients
指标的最大聚合是否接近或高于特定缓存大小允许的最大连接数。 有关每个客户端连接的大小调整的详细信息,请参阅 Azure 托管的 Redis 定价。
Kubernetes 托管应用程序
- 如果客户端应用程序部署在 Kubernetes 环境中,请检查运行客户端应用程序的 Pod 或群集节点是否存在内存、CPU或网络压力。 运行客户端应用程序的 Pod 可能会受同一节点上运行的其他 Pod 的影响,并限制 Redis 连接或 IO 操作。
基于 Linux 的客户端应用程
在 Linux 中使用乐观 TCP 设置可能会导致客户端应用程序遇到连接问题。 请参阅连接中断持续 15 分钟。
持续连接
如果应用程序无法连接到 Azure 托管 Redis 实例,则缓存上的某些配置可能未正确设置。 以下部分提供如何确保正确配置缓存的建议。
使用 redis-cli 测试连接
使用 redis-cli 测试连接。 有关 CLI 的详细信息,请参阅将 Redis 命令行工具与 Azure 托管 Redis 配合使用。
使用 PSPING 测试连接
如果 redis-cli 无法连接,则可在 PowerShell 中使用 PSPING
测试连接。
psping -q <cache DNS endpoint>:<Port Number>
可以确认发送的数据包数等于收到的数据包数。 确认可确保连接性不会下降。
专用终结点配置
检查专用终结点配置的步骤:
- 验证专用终结点配置是否正确。 有关详细信息,请参阅使用新的 Azure 托管 Redis 实例创建专用终结点。
- 验证应用程序是否在端口 10000 上连接到
<instancename>.<region>.redis.chinacloudapi.cn
。 建议避免在配置或连接字符串中使用<instancename>.<region>.privatelink.redis.cache.chinacloudapi.cn
。 - 从链接到专用终结点的 VNet 中运行类似
nslookup <hostname>
的命令,以验证该命令是否解析为缓存的专用 IP 地址。 - Azure 托管的 Redis(预览版)目前不支持
Public Network Access
。 无法从缓存的虚拟网络外部连接到缓存专用终结点。
防火墙规则
如果为 Azure 托管 Redis 配置了防火墙,请确保将客户端 IP 地址添加到防火墙规则。 可在 Azure 门户“资源”菜单中的“设置”下查看“防火墙”。
第三方防火墙或外部代理
当您在网络中使用第三方防火墙或代理时,请确保 Azure 托管 Redis 的终结点 *.redis.chinacloudapi.cn
以及端口 10000
被允许。 使用群集缓存或异地复制时,可能需要允许更多端口。
公共 IP 地址变更
如果你已经将任何网络或安全资源配置为使用缓存的公共 IP 地址,请检查确认缓存的公共 IP 地址是否已更改。 有关详细信息,请参阅依赖缓存的主机名而不是公共 IP 地址。