> Where does the redis instance come from?
Same place as it would if it was a microservice. Someone has to provision it, this is not automatic just because you use microservices.
> How does the library get access to it?
How does the microservice get access to it? A common way seems to be reading a host and port from an environment variable. Nothing is preventing a library from reading from an environment variable too.
> Much like monitoring of that redis instance will also become a problem for the user.
Again, this is something you still need someone to do for the microservice. None of these things are automatically solved by microservices. There are all kinds of automation tools for these things, but they work the same whether you use microservices or not.