Blog Post

Azure Managed Redis
4 MIN READ

Data Migration with RIOT-X for Azure Managed Redis

CollinBrian's avatar
CollinBrian
Icon for Microsoft rankMicrosoft
Apr 17, 2025

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:

  1. Identify source keys to be replicated
  2. Read data associated with each key
  3. 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.

Resources

Updated Apr 16, 2025
Version 1.0