There's never any gurantee any fish or invert for that matter will eliminate an algae problem.
Depending on the size of your tank I would suggest a rabbitfish. Most herbivorous fish will outgrow anything smaller than a 75 gallon, so for a smaller tank I would go with large turbo snails. A dozen of them completely knocked out a hair algae problem that had taken over my entire 30 gallon, in about 4 days.
Also, herbivorous fish graze constantly, so they poop constantly, and the poop is a source of food for the algae, so it can end up just creating a never ending cycle of algae growth if you don't maintain a really clean tank.
Main thing though is to make sure your lighting period isn't too long, feed lightly. Test for phosphates and nitrates and make sure they are minimal, otherwise it will just grow back.