Help Center/ Distributed Cache Service/ FAQs/ Data Backup, Export, and Migration/ Why Does Redis Cluster Migration Fail If It Uses Built-in Keys and Cross-Slot Lua Scripts?
Updated on 2024-06-20 GMT+08:00

Why Does Redis Cluster Migration Fail If It Uses Built-in Keys and Cross-Slot Lua Scripts?

If your source Redis Cluster uses a cross-slot Lua script with built-in keys and it fails to be migrated to a cluster DCS instance, you can use a master/standby or read/write splitting instance as the target.

In scenarios where slot distribution changes, such as cluster scaling and slot migration, errors may incur in running a cross-slot Lua script with built-in keys. Therefore, cross-slot Lua scripts with built-in keys are not recommended for Redis Cluster instances.

Redis Cluster instances support cross-slot Lua scripts with built-in keys:
  • Built-in keys: Keys are written in the Lua script instead of being input through a function.
  • Cross-slot: All slots in a Lua script are on one shard.

Symptom

Online migration or backup import may fail when the source instance is a Redis Cluster that uses a cross-slot Lua script with built-in keys.

Solution

Select a master/standby or read/write splitting instance as the target.

Suggestion

Do not use cross-slot Lua scripts with built-in keys for Redis Cluster instances.

  • Redis Cluster instances support cross-slot Lua scripts with built-in keys:
    • Built-in keys: Keys are written in the Lua script instead of being input through a function.
    • Cross-slot: All slots in a Lua script are on one shard.
  • In scenarios where slot distribution changes, such as cluster scaling and slot migration, errors may incur in running a cross-slot Lua script with built-in keys.