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

连接Docker Redis容器时触发Invalid argument type错误的原因排查

问题分析与解决

核心问题说明

你遇到的并非Redis容器连接失败,而是代码中的两个错误导致的报错:

  • Redis客户端不支持直接传入布尔值作为value:client.set("bla", true)里的true是布尔类型,@redis/client库的RESP编码器无法处理该类型,因此抛出Invalid argument type错误。
  • 异步操作未正确处理:client.get("bla")返回的是Promise对象,直接打印会显示Promise { <pending> },必须用await等待其执行完成才能获取实际值。

修复后的代码

(async () => {
  const redis = require("redis");
  const client = redis.createClient({
    socket: {
      host: "localhost",
      port: 6379,
    },
    // password: '<password>'
  });

  client.on("error", (err) => {
    console.log("Error " + err);
  });

  await client.connect();

  // 将布尔值转为字符串,或使用JSON序列化存储
  await client.set("bla", "true");
  // 用await获取异步操作的结果
  const y = await client.get("bla");

  console.log("connect!!!", y);
  // 可选:使用完毕后关闭客户端连接
  await client.quit();
})();

验证容器连接状态

如果仍怀疑Redis容器的可用性,可通过redis-cli直接测试:

redis-cli ping

返回PONG则说明容器运行正常,连接无问题。

内容的提问来源于stack exchange,提问作者Jon Sud

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 00:10:51