Create an Active-Active database
Shows how to create an Active-Active database
Active-Active databases store data across multiple regions and availability zones. This improves scalability, performance, and availability, especially when compared to standalone databases. See Active-Active Redis for more information.
To deploy Active-Active databases in Redis Cloud, you need a Redis Cloud Pro plan that enables Active-Active Redis and defines the regions for each copy of your databases.
Overall, the process is similar to creating a Pro database with a new subscription. However, there are some additional requirements listed below:
- Enable Active-Active Redis
- Define the regions for each database instance
- Define unique CIDR addresses for each instance
- Define memory limit for the database
- Define throughput (read and write operations) for each region
Active-Active databases consist of multiple copies (also called instances) deployed to different regions throughout the world.
This reduces latency for local users and improves availability should a region fail.
Consistency between each instance is maintained in the background; that is, each copy eventually includes updates from every region. As a result, memory limit and throughput increase.
Define regions
When you create a new Pro database, the Active-Active Redis option appears to the right of the cloud providers.
When you enable Active-Active Redis, two regions are selected by default. Select the drop-down arrow to display a list of provider regions that support Active-Active databases.
Use the checkboxes in the list to select or remove regions. The Search box lets you locate specific regions.
You can use a region's Remove button to remove it from the list.
Define CIDR addresses
To properly route network traffic between each Active-Active database instance and your consumer VPCs, use care to specify unique CIDR address blocks when using VPC peering. The block regions should not overlap between the Redis server and your app consumer VPCs.
In addition, CIDR blocks should not overlap between cluster instances. Every CIDR block should be unique.
Use the VPC configuration section of the Advanced options to define unique address blocks for each region.
When all Deployment CIDR regions display a green checkmark, you're ready to continue.
Red exclamation marks indicate error conditions; the tooltip provides additional details.
Select capabilities
Active-Active databases support the JSON data type and Search and query capabilities.
If you chose the Vector search or Database use case, we select both capabilities for you automatically. You can remove a capability by selecting it.
You can't add or remove capabilities after you create your database.
Selected capabilities will be available in all regions, including those added in the future.
For Search and query databases, use the Sizing calculator to estimate your index size and throughput requirements.
See Search and query Active-Active databases to learn how to use Search and query on Active-Active databases.
Define memory limit
Active-Active databases have specific memory requirements that differ from non-replicated Redis.
Select Memory calculator to calculate the memory limit for your Active-Active database.
In the Memory calculator, enter your expected dataset size. For Search and query databases, add the estimated index size from the Sizing calculator to your expected dataset size.
Select Apply to apply the calculated memory limit.
Define throughput
Each Active-Active instance coordinates changes with every other instance, which increases memory use and throughput.
When you create an Active-Active database, you define the throughput for each instance.
Read and write operations are factored into the total throughput. Because each instance needs the ability to write to every other instance, write operations significantly affect the total, as shown in the following table:
Number of regions | Read operations | Write operations | Total operations |
---|---|---|---|
Two | 1,000 each | 1,000 each | 6,000 (2,000 reads; 4,000 writes) |
Two | 1,500 each | 1,000 each | 7,000 (3,000 reads; 4,000 writes) |
Two | 1,000 each | 1,500 each | 8,000 (2,000 reads; 6,000 writes) |
Three | 1,000 each | 1,000 each | 12,000 (3,000 reads; 9,000 writes) |
The total operations per second:
- Combines the total read ops/sec for each region
- Applies the write ops/sec for each region across every region.
Throughput requirements grow dramatically as regions increase. As a result, consider your requirements carefully.
For Search and query databases, the estimated throughput from the Sizing calculator is the total amount of throughput you need. When setting throughput for your Active-Active database, use the total amount for each region and divide it depending on your read (query) and write (update) needs for each region. For example, if the total amount of throughput needed is 50000 ops/sec, you could set each region to have 20000 ops/sec for reads (queries) and 30000 ops/sec for writes (updates).