Question: What is the difference between Redis master-replica setup and clustering?
Answer
Redis provides two different mechanisms for handling distributed storage: Master-Replica setup and Clustering.
A Master-Replica setup involves a single "master" Redis instance and one or more "replica" instances. The replicas mirror the data of the master. The purpose of this setup is mostly to scale reads and provide redundancy. If the master goes down, one of the replicas can be promoted to master.
Here's how you can set it up:
redis-server --port 6379 redis-server --port 6380 --slaveof 127.0.0.1 6379
The first command starts a Redis server acting as the master on port 6379 and the second command starts another Redis server acting as a replica to the master, running on port 6380.
On the other hand, Redis Cluster is a distributed implementation of Redis with two main goals: providing a degree of write scalability and providing high availability. Write commands are divided among multiple nodes so that each node only holds a subset of the total dataset. Additionally, the cluster maintains a certain number of replicas for redundancy and failover purposes.
Setting up a cluster involves several steps but here's a simple example using the create-cluster
script provided by Redis:
cd src ./redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 \ 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 \ --cluster-replicas 1
This command sets up a six-node Redis Cluster, with three master nodes and three corresponding replica nodes.
The choice between Master-Replica setup and Clustering depends on the use case. Master-Replica setups are simpler to manage and are ideal when read scalability or data redundancy is required, whereas Redis Clusters provide more write scalability and higher availability through automatic partitioning of data.
Was this content helpful?
Other Common Redis Questions (and Answers)
- What is the default port used by Redis?
- How to start Redis server?
- Is Redis persistent?
- How fast is Redis?
- How to install Redis on Mac?
- How to check if Redis is running?
- How to restart Redis?
- Does Redis persist data?
- How to install Redis on Ubuntu?
- How to stop Redis server?
- How to see Redis version?
- Does Redis have tables?
Free System Design on AWS E-Book
Download this early release of O'Reilly's latest cloud infrastructure e-book: System Design on AWS.
Switch & save up to 80%
Dragonfly is fully compatible with the Redis ecosystem and requires no code changes to implement. Instantly experience up to a 25X boost in performance and 80% reduction in cost