Redis Enterprise Cluster Architecture

Redis Enterprise can be either a single Redis server database or a cluster. This allows a Redis Enterprise database to either scale horizontally across many servers through sharding or to copy data, which ensures high availability with Redis Enterprise replicas. Sharding is a type of database partitioning that separates large databases into smaller, faster, and more easily managed parts. These smaller parts are called data shards. With sharding or partitioning, you are not restricted to storing data on the memory of a single computer. Another advantage of sharding is being able to use the computational power of multiple cores.

In Redis Enterprise, a cluster is a set of cloud instances, virtual machine/container nodes, or bare-metal servers that let you create any number of Redis databases in a memory/storage pool that’s shared across the set. The cluster doesn’t need to scale up/out (or down/in) whenever a new database is created or deleted. A scaling operation is triggered only when one of the predefined limit thresholds has been reached, such as memory, CPU, network, and storage IOPS.

To create a sharded cluster, you need to first specify the number of shards. Once you’ve done this, your data will automatically be sharded or divided into groups and placed on optimal nodes.

At any given time, a Redis Enterprise cluster node can include between zero and a few hundred Redis databases in one of the following types:

Each database can be built in several forms:

Each database can be accessed in multiple ways:

Multiple databases from different applications and users can run on the same Redis Enterprise cluster and node while fully isolated with multi-tenancy.

High Availability

Planning for disaster recovery and zero downtime means having a replica set of the Redis Enterprise cluster across a single region or several regions. High availability clusters are a group of hosts that merge as a single system to prevent downtime. 

If one server in a high availability cluster goes down, the mission-critical application is immediately transferred to another server as soon as the fault is detected. Redis Enterprise will ensure that the replica shard process is always created on a different node to achieve high failover. If nodes go down, Redis Enterprise will make sure that the replica shard process on the other available node becomes the new primary shard. 

A high availability cluster will utilize multiple systems and multiple primary and replica nodes that are already integrated. So should a failure cause one system to fail, another can be efficiently leveraged to maintain the continuity of the service or application being used.

Shared-nothing, linearly scalable, multi-tenant, symmetric architecture

Redis Enterprise Cluster

Cluster Architecture Symmetric Architecture Diagram

Redis Enterprise cluster is built on a complete separation between the data-path components (i.e proxies and shards) and the control/management path components (i.e. cluster-management processes), which provides a number of significant benefits:

Redis Enterprise cluster components

Redis Enterprise Cluster Components Diagram

Redis Enterprise cluster is built on a symmetric architecture, with all nodes containing the following components:

To optimize resources in a Redis Enterprise cluster, you should: 

FAQs

  • How do I use Redis commands?
    • To start the Redis client, open the terminal and type the command redis-cli. This will connect to your local server, and now you can run any command. In the above example, we connect to the Redis server running on the local machine and execute a command PING that checks whether the server is running.
  • What is linear scalability?
    • Linear scalability means that the amount of resources increases at the same proportion as your database throughput and in a deterministic manner. For example, increasing your cluster resources by 50% will translate to 50% throughput increases. Redis Enterprise supports the open source cluster API, enabling infinite, linear scaling by simply adding shards and nodes.
  • How does Redis Enterprise Software achieve high availability? 
    • Redis Enterprise Software offers uninterrupted high availability with five-nines (99.999%) uptime. By using technologies like diskless replication, instant failure detection, and single-digit-second failover across racks, zones, and geographies, Redis Enterprise delivers high availability while being more cost-effective than competing technologies. Redis Enterprise Software automates cluster management to provide confidence that the Redis cluster and Redis clients will always be available. Redis Enterprise Software offers several ways to ensure data consistency and reliability, including active-active data replication, AoF (append on file) persistence, and snapshots.
  • Is Redis Labs the same company as Redis?
    • Redis Labs was rebranded Redis in 2021. We rebranded to emphasize that Redis Ltd (the company) is responsible for open source Redis and Redis Enterprise. As the official sponsor of open source Redis, Redis understands how important it is to the developer community and is committed to ensuring open source Redis is always freely available. Redis is also developing the market’s most scalable, reliable, and highly available in-memory real-time data platform, Redis Enterprise Software, and Redis Enterprise Cloud.

Want to learn more?

Watch our recent Tech Talk on Buy vs Build: Clustering & Provisioning in Redis Open Source vs Redis Enterprise!


Next section  ►  True Linear Scalability