腾讯云无法连接 Redis实例

小亮 2022-09-19 09:40 61309

现象描述

  • 现象1:从 CVM 连接登录云数据库 Redis,连接失败。
  • 现象2:从数据库管理 DMC 平台连接登录云数据库 Redis,连接失败。腾讯云无法连接 Redis实例
  • 可能原因

  • 网络问题。
  • 安全组问题。
  • 密码问题。
  • 连接数已满。
  • 内存写满或者分片写满。
  • 需外网访问实例但无法访问。
  • 发生 HA 切换、服务不可用、只读副本切换、只读副本服务不可用等。
  • 解决思路
    使用 telnet 确认是 Redis 问题还是业务侧问题。
    确认是否为密码问题。
    调整最大连接数。
    确认是否内存写满或分片写满导致写入失败。
    通过开启外网地址实现外网访问。
    确认是否发生 HA 切换、服务不可用、只读副本切换、只读副本服务不可用等。
  •  

    处理步骤
    使用 telnet 确认是 Redis 问题还是业务侧问题
    大部分客户遇到的连接失败、无法连接等问题,一般为业务侧问题,可以通过命令行工具以及 telnet 缩小问题范围:

    [root@VM-4-10-centos ~]# telnet 10.x.x.34 6379
    Trying 10.x.x.34...
    Connected to 10.x.x.34.
    Escape character is '^]'.
    如上述所示,提示连接成功代表 Redis 实例没有问题,下面进行业务侧问题排查:

  • 确认是否为网络问题
    云服务器和数据库,须在同一账号同一个 VPC 内(保障同一个地域),或同在基础网络内,才能内网直接互通。
    云服务器(CVM)采用私有网络(VPC),Redis 采用基础网络。建议将 Redis 从基础网络切换为 VPC 网络,请参见 配置网络。
    CVM 采用基础网络,Redis 采用 VPC。建议将 CVM 从基础网络切换为 VPC 网络,请参见 切换私有网络服务。
    CVM 与 Redis 在同一地域内,但属于不同的 VPC 网络。建议将 Redis 迁移到 CVM 所在的 VPC 网络,请参见 配置网络。
    CVM 与 Redis 不在同一地域内,属于不同的 VPC 网络。建议在两个 VPC 网络之间建立 云联网。
    CVM 与 Redis 为不同账号,属于不同的 VPC 网络。建议在两个 VPC 网络之间建立 云联网。
  • 确认是否为安全组问题
    若 CVM 和 Redis 的安全组配置有误,则会导致 CVM 无法连接 Redis。
    CVM 安全组配置有误
    若想使用 CVM 连接 Redis,需在 CVM 安全组中配置出站规则,当出站规格的目标配置不为0.0.0.0/0且协议端口不为 ALL 时,需要把 Redis 的 IP 及端口添加到出站规则中。
    登录 安全组控制台,单击安全组名,进入 CVM 绑定的安全组详情页。
    选择出站规则页,单击添加规则。
    “类型”选择自定义;“目标”填写您 Redis 的 IP 地址(段);“策略”选择允许。
    Redis 安全组配置有误
    若想指定的 CVM 连接 Redis 实例,需要在 Redis 安全组中配置入站规则,当入站规则的源端配置不为0.0.0.0/0且协议端口不为ALL时,需要把 CVM 的 IP 及端口添加到入站规则中。
    登录 安全组控制台,单击安全组名,进入 Redis 绑定的安全组详情页。
    选择入站规则页,单击添加规则。
    填写您允许连接的 IP 地址(段)及需要放通的端口信息(Redis 内网端口),选择允许放通。
    “类型”选择自定义;“来源”填写您 CVM 的 IP 地址(段);“策略”选择允许。注意:
    Redis 内网默认端口为6379,同时支持自定义端口,若修改过默认端口号,安全组中需放通 Redis 新端口信息。
    安全组入站规则需要放通 Redis 实例的6379端口。
    确认是否为密码问题
    执行 info 命令进行测试,如果执行提示如下,说明 Redis 密码没有问题。
  • [root@SNG-Qcloud /data/home/rickyu]# redis-cli -h 10.x.x.34 -p 6379 -a password
    10.x.x.2:6379> info cpu

    CPU

    used_cpu_sys:1623.176000
    used_cpu_user:4649.572000
    used_cpu_sys_children:0.000000
    used_cpu_user_children:0.000000
    如果执行提示NOAUTH Authentication required.代表密码错误。

    10.0.4.31:6379> info memory
    NOAUTH Authentication required.
    10.0.4.31:6379>
    解决方案
    登录 Redis 控制台,单击实例 ID 进入详情页,进行密码重置即可,详情请参见 管理账号。

    调整最大连接数
    登录 Redis 控制台,单击实例 ID,进入实例详情页。
    在详情页的最大连接数处,单击调整可修改最大连接数。

下篇:iptable 转发