Suggest an editImprove this articleRefine the answer for “How does Redis Cluster scale horizontally?”. Your changes go to moderation before they’re published.Approval requiredContentWhat you’re changing🇺🇸EN🇺🇦UAPreviewTitle (EN)Short answer (EN)Redis Cluster scales horizontally by distributing keys across 16384 hash slots among multiple master nodes (each holding only part of the overall dataset); when there's more data, an administrator adds a new master, and Redis redistributes some of the slots onto it without stopping the cluster (`redis-cli --cluster reshard`). **Key point:** Redis Cluster has no central coordinator - every node knows how the slots are distributed and redirects requests to each other via a `MOVED` response, and reads can be scaled through replicas, while writes always go to the master.Shown above the full answer for quick recall.Answer (EN)ImageRedis Cluster scales **horizontally** by **distributing keys across a set of nodes (masters)**, each of which holds *part of the overall dataset*. Here's how this is set up: ### 1. Data is split into 16384 hash slots - Redis Cluster splits the whole key space into **16384 logical slots**. - Every master node gets a certain number of these slots. For example: ```javascript master1 → 0-5460 master2 → 5461-10922 master3 → 10923-16383 ``` - When a client writes or reads a key, Redis computes its hash (`CRC16(key) % 16384`) and figures out which slot it belongs to. **The result:** every node holds only part of the data, not the whole volume. ### 2. Adding new nodes As data grows: - an administrator **adds a new node (a master)** to the cluster, - and Redis **redistributes some of the slots** from the existing masters onto it. This is done via the command: ```bash redis-cli --cluster reshard <host>:<port> ``` During migration, data is automatically moved between nodes, with no need to stop the cluster. ### 3. Load balancing Every node holds roughly the same number of slots, so memory and operation load is spread evenly. If some node is overloaded, slots can be **moved** manually or automatically. ### 4. Reading from replicas Every master has one or several replicas, which can be used to **scale reads**. So: ```javascript master → writes replicas → reads ``` ### 5. Scaling with no single point of failure Redis Cluster has no central coordinator: every node knows how the slots are distributed and can redirect requests to each other. The client connects to any node, and if needed, that node returns a `MOVED` command, pointing to the right node. ### Summary > Redis Cluster scales horizontally > because it lets you add new nodes, > redistributing hash slots and data among them. This provides: - linear performance growth as servers are added, - evenly spread load, - and fault tolerance through replicas.For the reviewerNote to the moderator (optional)Visible only to the moderator. Helps review go faster.