a year ago
const redisConnection: RedisOptions = {
host: `http://${process.env.REDIS_HOST}`,
port: Number(process.env.REDIS_PORT),
password: process.env.REDIS_PASS,
username: process.env.REDIS_USER,
family: 0,
retryStrategy: (times) => {
// reconnect after
return Math.min(times * 50, 2000);
},
};
My connection object above
[ioredis] Unhandled error event: Error: getaddrinfo ENOTFOUND http://redis-cache-staging.railway.internal
4 Replies
a year ago
13314144-b328-475d-867f-a0337164519f
a year ago
I have set the family as you can see
a year ago
i also have sleep 3
in my start command
a year ago
nixpacks or dockerfile?
a year ago
nixpacks with the sleep command in the package.json start command
a year ago
according to the redis service settings, is that host correct?
a year ago
redis-cache-staging.railway.internal
Should i have the http infront ?
a year ago
redis does not use http
a year ago
kkk let me check. should i justhave
redis-cache-staging.railway.internal
a year ago
is the redis database in the same environment as the service thats trying to connect to it
a year ago
yes
a year ago
are you sure the sleep 3 is being ran?
a year ago
yes
a year ago
how so?
a year ago
a year ago
i have removed http:// and redeploying now to check
a year ago
[ioredis] Unhandled error event: Error: connect ECONNREFUSED 127.0.0.1:6379
at _nodeinternal_captureLargerStackTrace (node:internal/errors:496:5)
at _nodeinternal_exceptionWithHostPort (node:internal/errors:671:12)
at TCPConnectWrap.afterConnect as oncomplete
a year ago
const redisConnection: RedisOptions = {
host: process.env.REDIS_HOST,
port: Number(process.env.REDIS_PORT),
password: process.env.REDIS_PASS,
username: process.env.REDIS_USER,
family: 0,
retryStrategy: (times) => {
// reconnect after
return Math.min(times * 50, 2000);
},
};
a year ago
Host is set correctly in the variables
a year ago
you are still using shared variables
a year ago
please see this for ioredis
a year ago
a year ago
i have applied everything from the railway docs
a year ago
please stop using shared variables for this
a year ago
use reference variables
a year ago
ok changed from shared variables, using reference vars from redis service
a year ago
Redis port has gone blank on the redis service
a year ago
use the private url variable please
a year ago
just like the example in the docs shows
a year ago
Ok using the private url string only works. But i wonder why you cannot construct using the options with all the same details
a year ago
probably just configured it wrong
a year ago
@Brody thanks for all the help man. appreciate it
a year ago
no problem
a year ago
Hi sorry to bring this back up, but I'm not able to see the messages on discord, and I think many links are missing here.
What is the right solution to get a redis instance running within the same project? I'm having issues with the host being undefined.
"just like the example in the docs shows" does anyone have links to these docs please?
a year ago
No worries, the links are indeed missing.
Getting ioredis setup correctly with private networking checklist -
Make sure you have the V2 runtime enabled in your service settings.
Use the URL syntax for the ioredis client as shown here - https://github.com/redis/ioredis/blob/main/README.md#connect-to-redis
Use environment variables -
REDIS_URL=${{Redis.REDIS_PRIVATE_URL}}
Append
?family=0
to the end of the URL.
Example -
const redis = new Redis(process.env.REDIS_URL + "?family=0");
3 months ago
Hi, I'm still having this exact issue.
I'm running:
ioredis 5.5.0
node 22.8.0
I'm configuring the redis instance like this:
```
const redisClient = new Redis(`${process.env.REDIS_URL}?family=0`, {
tls: { rejectUnauthorized: false },
lazyConnect: true,
connectTimeout: 15000,
retryStrategy: (times) => Math.min(times * 30, 1000),
});
```
My redis url looks like this when I print it out: redis://default:yyBqSILlgwiYDnZOPgvQELaUAmvKLjgc@redis.railway.internal:6379
I'm using setting the REDIS_URL variable like this on railway: ${{Redis.REDIS_URL}}
Also regarding @brody's checklist, "ensure V2 runtime enabled" - I cannot see such on option on either my redis-service or my backend-service config. Is there another way to configure this?
One thing to note is that my redis service is deployed in a US region while the backend is in europe. Ofc I'd want them both in Europe but its currently not an option on the hobby plan.
Thanks in advance!
michael88
Hi, I'm still having this exact issue.I'm running:ioredis 5.5.0node 22.8.0I'm configuring the redis instance like this:```const redisClient = new Redis(`${process.env.REDIS_URL}?family=0`, { tls: { rejectUnauthorized: false }, lazyConnect: true, connectTimeout: 15000, retryStrategy: (times) => Math.min(times * 30, 1000), });```My redis url looks like this when I print it out: redis://default:yyBqSILlgwiYDnZOPgvQELaUAmvKLjgc@redis.railway.internal:6379I'm using setting the REDIS_URL variable like this on railway: ${{Redis.REDIS_URL}}Also regarding @brody's checklist, "ensure V2 runtime enabled" - I cannot see such on option on either my redis-service or my backend-service config. Is there another way to configure this?One thing to note is that my redis service is deployed in a US region while the backend is in europe. Ofc I'd want them both in Europe but its currently not an option on the hobby plan.Thanks in advance!
3 months ago
Can you please open your own help thread, a new thread would be preferable over an 8 month old thread.
3 months ago
!s