You can use the restore mode of the redis-shake tool to migrate the backup data of on-premises Redis to ApsaraDB for Redis. This way, you can migrate data from on-premises Redis to the cloud.
- An ApsaraDB for Redis instance is created as the destination of data migration.
- An Elastic Compute Service (ECS) instance is created for running the redis-shake tool.
- The ECS instance can access the destination ApsaraDB for Redis instance.
- The Linux operating system is running on the ECS instance.
- A Redis database backup (RDB) file is stored on the ECS instance.
Introduction to redis-shake
Redis-shake is an open source tool developed by Alibaba Cloud. You can use it to parse (decode mode), recover (restore mode), back up (dump mode), and synchronize (sync or rump mode) Redis data. In restore mode, redis-shake can use an RDB file to recover or migrate data. This topic describes how to migrate data from on-premises Redis to ApsaraDB for Redis by restoring data from an RDB file.
- Log on to the ECS instance that can access the ApsaraDB for Redis instance.
- Download redis-shake on the ECS instance.
Note We recommend that you download the latest version of redis-shake.
- Run the following command to decompress the downloaded redis-shake.tar.gz package:
tar -xvf redis-shake.tar.gzNote The decompressed redis-shake file is a binary file that can run in the 64-bit Linux operating system. The redis-shake.conf file is the configuration file of redis-shake. You must modify this configuration file.
- Modify the redis-shake.conf file. The following table describes the parameters for the restore mode of redis-shake.
Table 1. Parameters for the restore mode of redis-shake Parameter Description Reference rdb.input The path of the RDB file. You can specify a relative path or an absolute path. /root/tools/RedisShake/demo.rdb target.address The endpoint and port of the ApsaraDB for Redis instance.
target.password_raw The password of the ApsaraDB for Redis instance.
TargetPass233Note If you use a database account other than the default database account to connect to the ApsaraDB for Redis instance, set this parameter in the following format:
target.db The database to which the data is migrated in the ApsaraDB for Redis instance. Default value: -1.
For example, to migrate data from the on-premises Redis to DB10 of the ApsaraDB for Redis instance, set this parameter to 10. If you set this parameter to -1, data in the source Redis cluster is migrated to the same database in the ApsaraDB for Redis instance. For example, the data of DB0 in the source Redis cluster is migrated to DB0 in the ApsaraDB for Redis instance, the data of DB1 in the source Redis cluster is migrated to DB1 in the ApsaraDB for Redis instance.
rewrite Specifies whether to overwrite the existing keys in ApsaraDB for Redis that are identical to those in the RDB file. Valid values:
Note Default value: true. We recommend that you back up the valid data in ApsaraDB for Redis before data migration. If you set this parameter to false and a key exists in both the source and destination databases, an error is returned.
- true: overwrites the existing keys.
- false: does not overwrite the existing keys.
parallel The number of concurrent threads used to synchronize the RDB file. More concurrent threads improve synchronization performance.Note
- Minimum value: 1.
- Maximum value: depends on the server performance.
- We recommend that you set the parameter to 64.
64Note You can use the default values of other parameters unless otherwise specified.
- Run the following command to migrate data:
./redis-shake.linux -type=restore -conf=redis-shake.confNote You must run this command in the same directory as the redis-shake and redis-shake.conf files. Otherwise, you must specify the correct file path in the command.Note When
restore: rdb doneappears in logs, the data is recovered. You can press Ctrl+C to exit the tool.