(Redis is single-threaded, anyways. You probably don't want to run production and staging on the same Redis process.)
Every other database on the planet has database names pretty much.
I LOVE Redis but this is just a bonkers limitation IMHO...
And in a world that increasingly moves to containerization you should really look into adding automation to your admin workflow (e.g. ansible). 'port' and 'startup script' should become 'service' and 'template' in your mind.
That's just what happens when you live with production systems. Not every service in the world gives you a dev/staging/production server with "curl github.com/my-bespoke-database/install-and-run.sh"
The last place I worked had 60 physical mysql servers. We had to deal with ports and servers and startup scripts quite a bit.
More generally, you can always use key-prefixes if you want a name-based way to segregate data in the same redis+db instance.
This idea may of course be contrary to the expected use of Lua scripts in Redis, and an attempt for the RDBMS part of my brain to look at Lua scripts as stored procedures.