Redis doesn't have support for master-master replication. However, there are a couple of designs that can come close.
The first design is to use Sentinel. Sentinel is a daemon that comes with recent versions of Redis, which monitors a group of Redis servers (1 master and 1+ slaves), and, when the master fails, can promote a slave to become the new master and tell the other slaves to replicate from the new master. Client programs poll Sentinel to learn who are the master and slave servers in the group, and find out when a failover to a new master has occurred. Sentinel does not truly duplicate a master-master configuration, but it automates the change from a failed master to a new one, and clients can change too.
The second design is to use the Redis single-master replication in a chain of three servers:
[master1]--->[master2]--->[slave]
A load balancer or DNS would send client connections to the master1 machine for writes. The clients connect to the slave machine for reads. Writes made to master1 will pass through master2 and appear on slave. If the master1 Redis fails, the load balancer/DNS would switch to sending client connections to the master2 machine for writes. The clients continue connecting to the slave machine for reads. Writes made to master2 will appear on slave.There are benefits and drawbacks to each of these two designs. They don't duplicate master-master replication exactly, but they offer ways to avoid the master being a single point of failure.
-Greg