The 33-year-old Harris batted .246 with two homers and 23 RBIs in 126 games for the Mets last season. It was his 11th in the majors.
Harris also has played for the Orioles, White Sox, Red Sox, Braves and Nationals. He has a .240 career batting average with 39 homers and 210 RBIs.
Harris can play all three outfield positions as well as second base and third base. The Reds appear set at shortstop with Zack Cozart, who is back from reconstructive surgery on his non-throwing elbow, and Paul Janish.