10 months ago
Hi team, today our apps started getting the error when trying to connect with our redis instance:
{"code":"ECONNREFUSED","error":"connect ECONNREFUSED 127.0.0.1:6379","errorLevel":"standard","label":"WorkerClientRedis","name":"Error","stack":"Error: connect ECONNREFUSED 127.0.0.1:6379\n at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1495:16)"}
We've read through a couple threads and tried the following:
We are using private redis, so we've ensured we have family=0 set on the connections
We tried switching to the public connection. We're able to connect and run on app with the public connection locally, but we still get errors in prod.
We're using ioredis with the following settings:
const BASE_REDIS_OPTIONS: RedisOptions = {
reconnectOnError: () => true,
connectTimeout: 5000,
retryStrategy: (times) => Math.min(times * 50, 2000),
maxRetriesPerRequest: 0,
enableReadyCheck: true,
autoResubscribe: true,
keepAlive: 1000 * 30,
family: 0,
This was working for us until today
0 Replies
10 months ago
ECONNREFUSED 127.0.0.1:6379
the redis client is trying to connect to what would be its default options, please make sure you have the client config setup correctly
10 months ago
awsome, do you mind sharing it?
yea ioredis
's Redis class claims that it can be constructed by passing an object with the connection options as follows:
import Redis from 'ioredis'
const new Redis({
path: ...,
port: ...,
host: ...,
...otherRedisOptions
})
Or by passing the connection url as follows:
import Redis from 'ioredis'
const new Redis(REDIS_URL, {
...otherRedisOptions
})
We has recently switched to the first approach and that seemed to have broke things. Switching back to the second syntax did the trick
10 months ago
perfect, thanks for the explanation!