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%:必须排查路由、防火墙或带宽瓶颈,否则缓存操作延迟将显著劣化。
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、防火墙 |
完成上述四项基础连通性检查后,方可进入下一阶段的数据一致性验证。任何一项检查未通过,都应视为迁移失败,需回滚或修复后再继续后续步骤。