By: Roy de Milde, Global Black Belt and App Innovation Specialist, Microsoft and George von Bülow, Senior Solution Architect, Redis
Introduction
Customers are increasingly seeking efficient ways to migrate their current cache systems to Azure Managed Redis. This growing demand has led to the development of innovative tools and applications to facilitate the migration process. Azure Managed Redis offers numerous benefits, including enhanced performance, scalability, and security features. By migrating to Azure Managed Redis, customers can take advantage of its fully managed service, which reduces the operational burden and allows them to focus on their core business activities. Additionally, Azure Managed Redis provides seamless integration with other Azure services, enabling customers to build more robust and scalable applications. The migration process can be complex, but with the right tools and guidance, customers can achieve a smooth transition and unlock the full potential of Azure Managed Redis. We are writing this blog to give more insights around this and help customers understand the benefits and process of migrating to Azure Managed Redis with RIOT-X
RIOT-X Explanation
RIOT-X is a tool created by the field engineers at Redis. RIOT-X, which stands for Redis
Input/Output Tools, is a command-line utility designed to help users seamlessly transfer data in
and out of Redis. It supports various sources and targets, including files (CSV, JSON, XML), data
generators, relational databases, and Redis itself through snapshot and live replication. The
introduction of RIOT-X addresses the challenges faced by customers during migration, offering
a streamlined and reliable solution. By leveraging RIOT-X, customers can ensure a smooth
transition to Azure Managed Redis, benefiting from enhanced performance, scalability, and
security features provided by Azure.
Migration
RIOT-X can be used for various migration scenarios, depending on the connectivity between the source and target Redis databases, and requirements for application availability.
Snapshot Migration
In the simplest case, data is directly replicated from the source (which can be any flavor or
version of Redis) to Azure Managed Redis during a scheduled downtime period. After
replication, the applications that are using Redis are reconfigured to connect to Azure Managed
Redis. The corresponding RIOT-X command is:
riotx replicate redis://source redis://target
Live Migration
If the application is mission critical and cannot afford any downtime, then a live migration
comes into play. This is like the snapshot scenario, but RIOT-X continuously updates the
database in Azure Managed Redis with changes applied to the source database. The modified
command uses the --mode live argument:
riotx replicate --mode live redis://source redis://target
Applications can now be updated with blue-green deployments or similar techniques, where
read and write components are changed independently. The source Redis database continues
to run until the application migration has been completed.
Export/Import Migration
For cases where there is no direct network connection between the source database and Azure
Managed Redis, RIOT-X allows exporting data in a standard format, such as JSON or CSV. The
data file is then transferred to a location accessible by Azure Managed Redis and imported with
RIOT-X. These are the corresponding commands:
riotx file-export --uri redis://source --type=json export.json
riotx file-import --uri redis://target --type=json export.json
Technical Setup
RIOT-X can be run on Windows, macOS and Linux.
Windows
scoop bucket add redis https://github.com/redis/scoop.git
scoop install riotx
MacOS
brew install redis/tap/riotx
Linux
Download the pre-compiled binary from RIOT-X releases and unzip.
unzip riotx-standalone-0.6.2-*.zip
You can also run RIOT-X as a Docker container:
docker run riotx/riotx [OPTIONS] [COMMAND]
RIOT-X supports the standard authentication methods for Redis. If you are using Entra Id
authentication with Azure Managed Redis, you must enable access keys for the duration of the
migration. Support for Entra Id has been added as a feature request for RIOT-X.
Architecture
RIOT-X is essentially an ETL tool where data is extracted from the source system, transformed,
and loaded into the target system.
RIOT-X is a standalone system and does not need to be co-located with a Redis server.
Connection to Redis source and target databases is achieved through the Redis serialization
protocol (RESP), with support for both RESP2 and RESP3.
Replication between a Redis source and target works as follows:
- Identify source keys to be replicated
- Read data associated with each key
- Write each key to the target
If the source and target databases use different Redis versions (which is the case for Azure
Cache for Redis at version 6.2 and Azure Managed Redis at version 7.4), then data structure
replication must be enabled with the --struct argument:
riotx replicate --struct redis://source redis://target
Getting started with Azure Managed Redis
We are excited to offer the public preview of Azure Managed Redis, built to drive innovation and prepare your applications for AI.
If you are attending Microsoft Build 2025, please join us at this session and stop by the Azure Managed Redis booth for demos and to speak with an expert.
To get started with Azure Managed Redis today, please check out our product page for more information or contact our sales team.