You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ElastiCache for Redis中redis-cli执行set命令长期卡住无响应如何排查?

Amazon ElastiCache for Redis执行set命令无响应排查方案

常见触发原因

  • 安全组/网络ACL规则异常:仅放通了Redis端口的入站规则,未放通对应出站规则导致回包被拦截,或规则仅允许连接建立请求,未放通后续数据传输流量
  • 集群开启集群模式(Cluster Mode Enabled),但redis-cli连接时未加-c参数,写入key被哈希到其他slot时节点返回重定向,原生redis-cli默认不处理重定向会出现卡住现象
  • 节点资源不足:内存使用率超过maxmemory阈值且淘汰策略配置为noeviction,或CPU、网络带宽跑满,导致写入请求无法被处理
  • 客户端与集群之间MTU不匹配:VPC默认MTU为9001(巨帧),若客户端所在网络MTU为1500且未开启PMTUd发现机制,大数据包传输时会出现丢包卡住
  • 节点处于临时不可用状态:正执行故障切换、备份、扩容等运维操作,会临时拒绝写入请求

排查解决步骤

  1. 校验网络配置与端口正确性
    首先确认集群端口,Redis默认端口为6379,你操作命令中填写的6739为异常值,优先确认集群实际监听端口是否填写错误。
    再通过nc命令验证网络连通性:
    nc -zv ${aws-elasticache-cluster-url} 实际端口号
    同时检查ElastiCache关联的安全组、网络ACL规则,双向都要放通客户端IP对应的Redis端口流量。
  2. 确认集群模式适配
    连接集群后执行以下命令查看集群模式是否开启:
    cluster info
    若返回结果中cluster_enabled:1,说明是集群模式,需要重新用-c参数启动redis-cli支持重定向:
    redis-cli -c -h ${aws-elasticache-cluster-url} -p 实际端口号
  3. 检查节点资源与配置
    执行命令查看内存使用情况:
    info memory
    核对used_memory与maxmemory参数,若内存占用已达阈值且maxmemory-policy为noeviction,需要调整内存淘汰策略或扩容集群内存。
    再通过AWS控制台查看节点的CPU利用率、网络进出流量指标,若长期超过80%阈值,需要升级节点规格。
  4. 验证MTU适配性
    通过ping命令测试大包传输是否正常:
    ping -M do -s 8972 ${aws-elasticache-cluster-url}
    如果出现丢包,说明MTU不匹配,可将客户端所在服务器MTU调整为1500,或开启PMTUd功能。
  5. 检查集群运维状态
    登录AWS ElastiCache控制台查看集群事件与状态,确认是否存在正在进行的备份、扩容、故障切换操作,等待运维操作完成后再尝试写入。

内容的提问来源于stack exchange,提问作者Lee Dat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 17:36:00