是否可以使用MIGRATE?将所有密钥从一个Redis实例复制到另一个远程实例?我试过COPY,REPLACE并KEYS没有任何的运气.每次我得到NOKEY回复.如果我使用MIGRATE单个键的任何命令,它就可以工作.
例子:
MIGRATE my.redis 6379 "*" 0 5000 REPLACE // NOKEY
MIGRATE my.redis 6379 "*" 0 5000 COPY // NOKEY
MIGRATE my.redis 6379 "" 0 5000 KEYS * // NOKEY
MIGRATE my.redis 6379 "" 0 5000 KEYS test // OK
Run Code Online (Sandbox Code Playgroud)
这是@ezain提供的答案的一种改进,因为我无法发表评论。该命令使用正确的redis语法来处理成批的键,但是参数导致每个键被调用一次,而不是包含所有键一次被调用(这意味着完成该键所花的时间比实际要多得多)必要)。在所有情况下,以下操作都会更快:xargs
redis-cli --raw KEYS '*' | xargs redis-cli MIGRATE my.redis 6379 "" 0 5000 KEYS
如果目标受密码保护:
redis-cli --raw KEYS '*' | xargs redis-cli MIGRATE my.redis 6379 "" 0 5000 AUTH password-here KEYS尝试在您的外壳中运行
redis-cli keys '*' | xargs -I '{}' redis-cli migrate my.redis 6379 "" 0 5000 KEYS '{}'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4776 次 |
| 最近记录: |