Соединение Redis в нерабочем состоянии: время ожидания соединения превышено. Возможно, было обработано Nodejs Async-redis

#node.js #redis #node-redis #ioredis #elastic-cache

#node.js #redis #узел-redis #ioredis #эластичный кэш

Вопрос:

Пытаюсь подключиться к AWS redis elastic cache, но постоянно получаю эту ошибку. Я не уверен, что я здесь делаю не так, любая помощь приветствуется. Вот мой код

  async function testRedis(){
try{
 const asyncRedis = require("async-redis");
        const client = asyncRedis.createClient({
            port: 6379,
            host: 'myHost',
            auth_pass: redisPassword,
            connect_timeout: 900,
            enable_offline_queue: false
        })
        const response = await client.set("test", "response");
        const redisResp = await client.get("test");
        const connStatus = client.quit()
        console.log('connection status::', connStatus)
    } catch (err) {
        console.log(err)
    }
}  

Комментарии:

1. «ErrorType»: «AbortError», «ErrorMessage»: «Соединение Redis в нерабочем состоянии: время ожидания соединения превышено. Возможно, оно было обработано.», «code»: «CONNECTION_BROKEN», «command»: «AUTH»,

Ответ №1:

У меня была такая же проблема. Мой хост не предоставил IP-адрес для опции хоста, поэтому я исправил это, используя строку подключения: [redis[s]:]//[[user][:password@]][host][:port][/db-number][?db=db-number[amp;password=bar[amp;option=value]]]

Должно выглядеть примерно так:

 const connectionString = 'rediss://username:password@url-to-your.redis.db.server.com:2500'
const client = asyncRedis.createClient(connectionString);
  

Async redis — это оболочка над Redis узла:https://www.npmjs.com/package/redis
Ознакомьтесь с документами для получения дополнительной информации.