k6 Redis客户端连接Azure Cache for Redis时出现I/O超时问题求助
k6 Redis客户端连接Azure Cache for Redis出现I/O超时问题排查
大概率不是k6客户端的兼容性Bug,而是配置遗漏或Azure Redis的网络/安全规则限制导致的,以下是具体排查和解决步骤:
- 必须开启SSL连接:Azure Cache for Redis默认强制要求SSL加密连接,而k6的
redis.Client默认不启用SSL。你的配置里缺少ssl: true选项,这是导致超时的核心原因。修改后的配置如下:
const redisClient = new redis.Client({ addrs: ["myredis.redis.cache.windows.net:6380"], password: "primary_access_key_here", ssl: true // 启用SSL适配Azure Redis的强制要求 });
检查Azure Redis的网络访问规则:
- 如果k6在本地运行,需将本地公网IP添加到Azure Cache for Redis的「防火墙和虚拟网络」允许列表中;
- 如果k6在云端集群运行,需确保集群所在VNet与Redis实例的VNet已对等连接,或者临时设置Redis为「允许所有网络访问」(仅测试用,生产环境需严格限制)。
验证访问密钥与端口:
- 确认主访问密钥完全复制正确,无多余空格或字符;
- Azure Redis的SSL端口为6380(默认启用),非SSL端口6379默认禁用,无需尝试切换。
本地Redis能正常工作是因为你本地实例未强制SSL,而云端Azure Redis的安全规则要求必须通过SSL建立连接,未配置SSL的k6客户端无法完成握手,最终触发I/O超时。
内容的提问来源于stack exchange,提问作者TheDude
相关产品推荐
相关产品推荐

