There are two main flavors. Active-active means every copy serves traffic at the same time, and a load balancer spreads requests across them. If one dies, the others simply absorb its share. Active-passive means one copy serves traffic while a standby waits idle, ready to be promoted when the primary fails. Active-active gives you extra capacity for free, while active-passive is simpler and avoids conflicts on writes.
Redundancy needs three pieces to work: detection, failover, and recovery. Health checks detect that a component is down, usually by pinging it every few seconds and marking it unhealthy after a couple of missed responses. Failover routes traffic away from the dead copy to a healthy one. Recovery brings the failed copy back, or spins up a fresh one, so you are protected again.
The hard part is state. Stateless web servers are easy to duplicate because any copy can handle any request. Databases are harder because the copies must agree on the data. Systems solve this with replication, where writes flow from a primary to replicas, and with consensus protocols like Raft or Paxos that let a group of nodes elect a new leader and stay consistent when one fails.