flyctl redis status floral-flower-6924
Redis
ID = L5q...
Name = floral-...
Plan = Free
Primary Region = sea
Read Regions =
Private URL = redis://default:password@fly-floral-....upstash.io
How do I find the internal direction?
If I use the “standalone instance”, I’d have to pay for that?
I’ve not been successful in finding the internal address of the provisioned free Redis, so I ended up deploying a standalone instance. I’m not paying for it since it’s using of the three free slots, but your mileage may vary
Upstash Redis is a beta product, and when I tried it a few weeks ago it was practically unusable. I would advise as well to create a regular Fly app if you want a stable Redis server.
Managed Redis currently has a relatively short idle timeout that will result in periodic disconnects from applications that are mostly idle. You will need to configure your Redis client to automatically reconnect, for example using the redis-rb Ruby client, by setting reconnect_attempts > 0 and not using disable_reconnection. Our Rails guide has a patch for use with Action Cable.
As noted in the documentation, the managed Redis instance address is a private IPv6 address. There is no public address. It’s listed as Private URL in the flyctl redis status output.
The older thread you referenced was discussing a standalone app deployment, not the managed product released more recently.
The product was only just launched a few weeks ago, and we’ve been working hard on stability and bug-fixing improvements since the initial rollout.
I tried self-hosting redis of flyio, increasing reconnect_attempts to 5, and I still get 5-20 redis timeout emails per week. Specifically, in the last week, the connectivity is much worse.
I am going to try to create a fresh instance v2 instance and see if that will fix things.
v1 toml file
# fly.toml file generated for withheld on 2022-09-18T14:49:17-07:00
app = "withheld"
[metrics]
port = 9091
path = "/metrics"
# Use the Docker image instead of building from source
[build]
image = "flyio/redis:6.2"
[[services]]
internal_port = 6379
protocol = "tcp"