Difference between Solve[], Reduce[],FindInstance[],FindRoot[]?

Hello there,

I’m new to Mathematica. recently I’ve come across ways to solve equations and inequalities through Mathematica.
But I’m confused with so many Functions to solve equations.
I want to know the basic differences between Solve, FindInstance, Reduce and FindRoot.

and also, "When to use which function?"

Thank you.

This documentation might be useful