2. 迁移后基础连通性检查

Redis 迁移完成后,第一项任务不是验证数据完整性,而是确认客户端与目标集群之间的基础网络连通性。网络层面的故障会直接导致缓存穿透、连接超时、请求堆积等连锁问题。本节围绕四个核心检查项展开:redis-cli ping 命令验证、端口可达性测试、网络质量评估以及客户端连接数监控。

2.1 redis-cli ping:最简应用层连通验证

redis-cli ping 是 Redis 原生提供的存活探测命令。它不仅能验证 TCP 连接是否建立,还能确认 Redis 服务进程是否正常响应。执行方式如下:

# 直连模式(单节点或 Sentinel)
redis-cli -h <target_host> -p <target_port> -a <password> ping

# 集群模式(自动重定向)
redis-cli -c -h <cluster_host> -p <cluster_port> -a <password> ping

预期返回 PONG。若返回 MOVED 或 ASK 重定向,说明集群拓扑已正确识别,但客户端尚未完成槽位映射更新,属于正常现象。若返回 NOAUTH,则需检查密码配置是否一致。

冒烟检查要点: 在迁移窗口关闭后,立即从多个客户端节点(应用服务器、运维跳板机、监控探针)同时执行 ping 命令,排除单点网络策略限制导致的假阳性。

2.2 端口连通性测试:telnet 与 curl 双验证

当 redis-cli ping 失败时,需要区分是端口不可达还是 Redis 进程异常。推荐使用 telnet 和 curl 进行分层诊断:

工具 命令示例 验证目标 成功标志
telnet telnet <host> <port> TCP 三次握手是否完成 显示 Connected to ... 或进入空屏等待
curl curl -v telnet://<host>:<port> HTTP 代理环境下的端口可达性 返回 Connected to ... 或 Redis 原始响应
常见陷阱: 部分云环境或容器化部署会通过 iptables/安全组限制 ICMP 但放行 TCP。此时 ping 命令可能失败,但 telnet 成功。务必以 TCP 层验证为准,不要仅依赖 ICMP 结果。

2.3 网络延迟与丢包率:ping 统计指标

迁移后,客户端与 Redis 之间的物理路径可能发生变化(例如从同机房变为跨可用区),网络延迟和丢包率直接影响缓存访问性能。使用系统 ping 命令采集基础指标:

# 发送 100 个探测包,统计延迟分布与丢包率
ping -c 100 -i 0.1 <target_host>

# 输出示例
--- 10.0.1.100 ping statistics ---
100 packets transmitted, 98 received, 2% packet loss
rtt min/avg/max/mdev = 0.312/0.487/1.234/0.089 ms

关键阈值参考:

  • 平均延迟 < 1ms:同机房迁移,网络质量优秀。
  • 平均延迟 1~5ms:跨可用区或轻负载链路,需关注长尾请求。
  • 平均延迟 > 5ms 或丢包率 > 0.1%:必须排查路由、防火墙或带宽瓶颈,否则缓存操作延迟将显著劣化。
迁移后网络连通性分层检查流程 客户端节点 应用服务器 运维跳板机 监控探针 Step 1: redis-cli ping Step 2: telnet/curl Step 3: ping 统计 目标 Redis 集群 Master 1 Master 2 Replica 1 Replica 2 检查要点 • 多客户端同时执行 • 区分 ICMP/TCP 结果 • 记录延迟基线 • 确认连接数正常

2.4 客户端连接数确认

迁移后,客户端连接池可能因旧连接残留、新连接建立失败或连接泄漏导致连接数异常。通过 Redis 内置命令快速检查:

# 查看当前总连接数
redis-cli -h <target_host> -p <target_port> INFO clients | grep connected_clients

# 输出示例
connected_clients:256

# 查看每个客户端详情(IP、名称、空闲时间)
redis-cli CLIENT LIST

连接数异常场景与处理建议:

  • 连接数远低于迁移前:检查客户端连接池配置是否指向新地址,DNS 解析是否生效,防火墙是否拦截了部分客户端 IP。
  • 连接数持续增长不回落:可能存在连接泄漏,检查客户端是否在每次操作后正确归还连接,或 Redis 的 timeout 配置是否过小导致连接被提前关闭。
  • 连接数包含大量旧 IP:旧集群未完全下线或客户端未刷新 DNS 缓存,需强制刷新或重启客户端进程。
基线对比: 迁移前应记录 connected_clients、blocked_clients、client_longest_output_list 等指标。迁移后对比差值,偏差超过 ±20% 需立即排查。

2.5 检查清单速查表

检查项 命令/工具 预期结果 异常处理
应用层存活 redis-cli ping PONG 检查密码、端口、进程状态
端口可达性 telnet / curl Connected 检查安全组、iptables、NAT 规则
网络延迟 ping -c 100 avg < 1ms(同机房) 排查路由、带宽、跨 AZ 专线
丢包率 ping -c 100 0% 检查物理链路、交换机端口错误
客户端连接数 INFO clients 与迁移前基线一致 检查连接池配置、DNS、防火墙

完成上述四项基础连通性检查后,方可进入下一阶段的数据一致性验证。任何一项检查未通过,都应视为迁移失败,需回滚或修复后再继续后续步骤。