Controlled components are primarily related to forms, since input elements normally store their own value internally and allow you to ask for that value later. By always forcing the input to have a value you specify, and handling the change events yourself with updates to your state, dealing with inputs becomes more predictable.
As for Redux, it's entirely fine to use component-level state wherever you feel it's necessary. For example, having an input that's connected to Redux and dispatching an action on every keystroke may be overkill, so tracking the input's value in component state and only dispatching the action on form submission may simplify things.
FYI, I keep a big list of links to high-quality articles on React, Redux, and related topics, at https://github.com/markerikson/react-redux-links . As part of that list, I have a page of articles talking about React and Forms that you may find useful, including a number of articles on controlled inputs.
You may also want to refer to the Redux FAQ question on Redux state vs React component state.
Ghazouane
code ♥ surf