Partitioning
Partitioning is a general term used to describe the act of breaking up data and distributing it across different hosts. There are two types of partitioning: horizontal partitioning and vertical partitioning. Partitioning is performed in a cluster of hosts when better performance, maintainability, or availability is desired.
When Redis was initially designed, it had no intention to be a distributed data store; thus, it cannot natively distribute its data among different instances. It was designed to work well on a single server. Redis Cluster is designed to solve distributed problems in Redis.
Over time, Redis storage may grow to such an extent that a single server may not be enough to store all of the data. The performance of reading from and writing to a single server may also decline.
As we saw in the previous section, we can use replicas to optimize reads and remove some bottlenecks from the master instance, but in many cases, this is not enough. Different needs require different...