我们在Azure上有两个Azure Redis实例。源是Azure中的“标准”设置。我们需要将所有35GB从标准版本复制到高级版本(不迁移)。
最好的方法是什么?数据应该是静态的。您无法以标准方式导出数据,也无法进行分片。我们已经超出了大小,需要转移到支持分片的那个。
答案 0 :(得分:1)
在目标Redis的配置文件集
中slaveof sourceIP sourcePort
slave-read-only no
它将通过传输RDB文件有效地将源数据库复制到您的新数据库中。然后你可以注释掉这些行并关闭源实例。请注意,目标实例中的旧键不会被保留,也不会被重写。
对这个悲伤的故事不会帮助你。
127.0.0.1:6371> CONFIG SET slaveof“localhost 6370”
(错误)ERR不支持的CONFIG参数:slaveof
MIGRATE remotehost remoteport "" 0 5000 COPY KEYS *
也不会工作。但有一种解决方法:https://stackoverflow.com/a/42686861/78569
redis-cli --raw KEYS'*'| xargs redis-cli MIGRATE my.redis 6379“”0 5000 KEYS
(如果您使用它,请向那个人投票)
这是一个将KEYS
输出管道导入MIGRATE
的脚本,并添加了一些其他功能:https://gist.github.com/nicStuff/ee7feb8eed00174a46db42812545b403
即使您无权访问服务器上的文件,也可以使用Redis协议下载RDB转储:
redis-cli -h <host> -p <port> --rdb /path/to/local/copy/dump.rdb