Redis Enterprise was built from the ground-up to serve as a system of record for any application. It enhances the speed and the versatility of Redis with robust reliability, ease of use, cost savings and new advanced capabilities. The below sections describe our technology implementation, that ensures the seamless linear scaling, blazing fast performance, reliability and security that customers expect from enterprise-grade databases. Read on to understand the concepts and the architecture behind advanced features like Active-Active Geo Distribution with CRDTs, Redis on Flash, RediSearch and integrated modules.
Redis Enterprise Cluster – An Architecture Overview
Redis Enterprise Cluster is based on a shared-nothing symmetric architecture that facilitates extremely high performance with linear scalability, high availability with seamless single digit (<10msec) failover time, greater security and easy manageability. It’s built-in multi-tenancy allows you to create any number of Redis databases and of any type (single shard, highly available (HA) Redis, Clustered, and HA Clustered) over a shared pool of memory in a fully isolated manner.
Scaling Redis Enterprise
Redis Enterprise offers multiple ways to scale:
- Up/down – by adding/removing shards to/from existing cluster nodes and if needed upgrading/downgrading the nodes
- Out/in – by adding/ removing nodes to/from the cluster, re-sharding databases and rebalancing databases’ shards across the cluster, scaling out/in proxies to handle increased/decreased throughput requirements without changing your app, by adding more proxies behind your database endpoint or by utilizing OSS cluster API.
- Read Scaling- using the “replica of” feature to scale read operations without impacting your HA settings.
Highly-Available (with single digit failover time) Redis
Redis Enterprise provides a different approach for high-availability: it relies on fast, pure in-memory replication and depends on node-to-node communication to detect failure and network split events, rather than on shard-to-shard communication. This architecture enables a single digit auto-failover time (<10msec) and significant cost savings by reducing the number of copies of data needed. A full suite of failure protection, backup and recovery options ensure robust and reliable Redis databases.
Redis Enterprise provides full durability through two persistence mechanisms:
- Append-Only file (AOF) per write or per second
- Snapshots (point-in-time copy of the entire database with configurable time intervals).
Redis Enterprise cluster is designed to work with network-attached storage for data persistence. By default, every node in the cluster is connected to a network-attached storage resource, thus making the cluster immune to data loss events like multiple node failures when no copy of the dataset is left in RAM.
Backup, Restore and Cluster Recovery
Redis Enterprise allows you to backup your database to any of the major public clouds’ storage (AWS S3, Azure Blob Storage, Google Cloud Storage) as well as to any FTP or Swift services. Backup is done in a point-in-time manner and across all the shards of the database. Restoring from backups is simple and requires only a few clicks in Redis Enterprise.
Cluster recovery is an independent tool that launches Redis Enterprise cluster from scratch in cases where the cluster reaches to an irrecoverable state, for example, when majority of the cluster nodes are down.
Active-Passive Geo-Distribution (using “replica-of”)
Gain great flexibility in creating geo-distributed Redis Enterprise databases through its ‘replica of ‘ capability. This unique directional replication capability allows you to synchronize data between any source and destination databases, placing the data close to the user for low latency read access. You can configure multiple sources to a single destination or multiple destinations to a single source. Furthermore, the number of nodes and shards at the source cluster can be totally different than the number of nodes and shards at the destination. This capability allows you to scale reads, non-disruptively migrate databases and create highly available copies of the data.
Active-Active Geo-Distribution (CRDT-Based) (overview)
Active-active geo-distributed topology is achieved by implementing CRDTs (Conflict-free Replicated Data Types) techniques in Redis Enterprise using a global database that spans multiple clusters. This globe spanning database is called a “Conflict-free Replicated Database” or “CRDB.”
CRDB provides three fundamental benefits over other geo-distributed solutions:
- Local latency on read/write operations, regardless of the number of geo-replicated regions and their distance from each other
- Seamless conflict resolution (“conflict free”) for simple and complex data types like those of the Redis core or the Redis modules.
- Even if the majority of geo-replicated regions (for example 3 out of 5) are down, the remaining geo-replicated regions are uninterrupted and can continue to handle read and write operations.