Migrating data from one data source to another creates a great risk for a business. There is a chance for a number of things to go wrong like data loss, dataset schema changes causing semantics risk, extended (unexpected) downtime, and data corruption, to name just a few. Regardless of the risks, businesses need to innovate to survive and that means taking data from old or legacy databases and putting some, if not all, data into new databases to take advantage of all of the new and necessary potential. Such is the case with the companies moving more of their data into in-memory solutions like Redis to take advantage of the power of real-time data.
Redis Open Source is a really great way to incorporate real-time capabilities into your app. With Redis Enterprise, you can bring all of the things you love about Redis on top of infinite linear scalability, five 9s of true high availability, security built-in, and a way to keep the costs low with Redis on Flash. Once you start to outgrow Redis Open Source, the question becomes: how to safely and most efficiently migrate that Redis data to an enterprise-hardened Redis? The answer: Redis Enterprise.
As an architect, your customers will want new capabilities and reliable performance that you simply cannot get in Redis Open Source without building them from the ground up. As an operator, you will want a simple set-up and a reliable and easy way to operate this critical data pipeline without all of the manual overhead and maintenance. Redis Enterprise is the easiest and most straightforward way to migrate Redis data from Redis Open Source to the version of Redis built for enterprise solutions. Let’s dive in.
In order to understand how we can perform a database migration with zero downtime deployment, we need to understand the features behind Redis Enterprise that help us execute this data migration. Redis Enterprise has the ability to provide Active-Passive Geo-Distributed Replication to applications with read-only access to replicas from different geographical locations. We call this Replica Of.
In the configuration of a Redis Enterprise database, we can assign a database as a replica (destination) of one or more (max 32) databases (sources). After the initial load from source to destination is completed, all write commands are synchronized from the sources to the destination. This enables you to perform a database migration with zero downtime as the replication bridge between the destination database and the sources can stay connected for as long as needed, even indefinitely.
Replica Of lets you distribute the read load of your application across multiple databases or synchronize the database, either within Redis Enterprise or external to Redis Enterprise, to another database.
You might be wondering about write access – for that, Redis Enterprise has Active-Active Geo-Distribution (CRDB) that provides write access to all of the database replicas on top of the other benefits during database migrations.
Below, you will see a lightning demo of how we set this up in less than five minutes. But before you watch that, let’s cover the data replication process. When our database is defined as a replica of another database, all of its existing data is deleted and replaced by the data that is loaded from the source database. In our lightning demo, we will start with a fresh Redis Enterprise database with zero data so we don’t risk losing data. Once the initial load is completed, an ongoing synchronization process takes place to keep the destination database always synchronized with its source.
With security in mind, Replica Of supports encryption for a unidirectional replication between source and a destination Redis cluster utilizing TLS 1.2 encryption.
But what if your source database is sharded? The entire database is treated as a single source for the destination database. If your destination database is sharded then the destination database’s hashing function is executed to determine to which shard(s) the command refers.
Well, that covers what you need to know about migrating data from Redis Open Source to Redis Enterprise, so let’s jump into the lightning demo on how to do this with your Redis database in order to take advantage of not only real-time power but real-time power with enterprise-grade capabilities.