为什么Redis没有响应?

问题描述 投票:0回答:1

我正在尝试在我的节点后端运行 Redis。代码运行良好,直到到达任何 Redis 命令,此时它就会停止。没有错误消息或任何内容,例如

const client = redis.createClient()
client.connect().then(() => redisTest())

const redisTest = async () => {
    console.log("running redis test...")
    try {
        client.set("test","val", function(err) {
            if (err) {
               // Something went wrong
               console.error("error");
            } else {
                client.get("test", function(err, value) {
                     if (err) {
                         console.error("error");
                     } else {
                         console.log("Worked: " + value)
                     }
                })
            }
        })
    } catch (error) {
        console.log("Redis error", error)
    }
}

client.on('error', err => console.log('Redis Client Error', err));

控制台记录“正在运行 redis 测试...”,然后停止(至少我预计会出现错误消息)。 Redis CLI 运行良好,我能够获取和设置值,并且我已经验证了端口号。我也尝试过

async client.connect()

(async () => {
    await client.connect()
})

两者都会引发错误。

关于如何解决这个问题有什么建议吗?

javascript node.js redis backend node-redis
1个回答
0
投票

这会返回 val

const client = redis.createClient();

const connectRedis = () => {
  return new Promise((resolve, reject) => {
    client.connect()
    client.on('connect', () => {
      console.log('Connected to Redis server...');
      resolve();
    });
    client.on('error', (err) => {
      console.error('Error connecting to Redis:', err);
      reject(err);
    });
  });
};

const redisTest = async () => {
  try {
    console.log("running redis test...");
    await client.set("test", "val");
    const value = await client.get("test");
    console.log("Worked: " + value);
  } catch (error) {
    console.log("Redis error", error);
  } finally {
    client.quit(); // Close the Redis client after the test is complete.
  }
};

// Usage: Connect to Redis first and then execute the test
connectRedis()
  .then(redisTest)
  .catch((err) => {
    console.error("Error in Redis test:", err);
    client.quit(); // Close the Redis client if there is an error during connection or test.
  });

© www.soinside.com 2019 - 2024. All rights reserved.