Redux is a state management library for React apps that follows three principles: single source of truth, state is read-only, and changes are made with pure functions called reducers. The entire state of the app is stored in an object tree within a single store. Actions describe state changes and are sent to reducers to return the next state. Presentational and container components work together with the store to update the UI based on state changes.