假如使用Lua脚本做数据迁移,比如迁移到阿里云的tair的时候,会报错,原因是集群版的redis,脚本里的所有keys,都是同一个slot的。
但是redis的slot有16384个,很难保证插入的数据是同一个slot。假如分开不同的slot来插入,就要调用多次lua脚本,性能就无法提升。
因此,做redis数据的迁移,比如一个db复制到另一个db, 或者是一个redis实例的部分数据复制到另一个redis实例里,可以使用成熟的工具来做迁移,我是使用yunedit-redis来做迁移的。
它的导出和导入功能很灵活,可以导出整个redis或者整个db的数据,也可以自定义根据正则表达式导出部分数据。
而且它有可视化界面,操作起来比较简单。
对于集群版,你还是放弃使用lua脚本的想法,还是使用成熟的工具。