The Reds did not disclose financial terms of the deal, but it is worth $5 million, according to the Cincinnati Enquirer.
Hernandez, 37, rejoined the wild-card-winning Arizona Diamondbacks last season for their stretch run after he was acquired in a midseason trade with the Los Angeles Angels. The right-hander played for the Diamondbacks for four seasons before he signed with Philadelphia as a free agent in December 2015.
Hernandez was a combined 3-1 with two saves and a 3.11 ERA in 64 games. He had a 2.23 ERA with one save in 38 games for the Angels.
Hernandez is 31-40 with a 4.00 ERA in 443 career games, making his major league debut in 2009 with Baltimore.