英 [maɪˈgreɪt]   美 [ˈmaɪgreɪt]  

vi.移动;迁移,移往;随季节而移居

vt.使移居;使移植

第三人称单数: migrates 现在分词: migrating 过去式: migrated 过去分词: migrated

redis MIGRATE命令 语法

作用:将 key 原子性地从当前实例传送到目标实例的指定数据库上,一旦传送成功, key 保证会出现在目标实例上,而当前实例上的 key 会被删除。

语法:MIGRATE host port key destination-db timeout [COPY] [REPLACE]

说明:MIGRATE 命令需要在给定的时间规定内完成 IO 操作。如果在传送数据时发生 IO 错误,或者达到了超时时间,那么命令会停止执行,并返回一个特殊的错误: IOERR 。

可用版本:>= 2.6.0

时间复杂度:这个命令在源实例上实际执行 DUMP 命令和 DEL 命令,在目标实例执行 RESTORE 命令,查看以上命令的文档可以看到详细的复杂度说明。key 数据在两个实例之间传输的复杂度为 O(N) 。

返回:迁移成功时返回 OK ,否则返回相应的错误。

redis MIGRATE命令 示例

先启动两个 Redis 实例,一个使用默认的 6379 端口,一个使用 7777 端口。
$ ./redis-server &[1] 3557
...
$ ./redis-server --port 7777 &[2] 3560...

然后用客户端连上 6379 端口的实例,设置一个键,然后将它迁移到 7777 端口的实例上:
$ ./redis-cliredis 127.0.0.1:6379> flushdb
OK
redis 127.0.0.1:6379> SET greeting "Hello from 6379 instance"
OK
redis 127.0.0.1:6379> MIGRATE 127.0.0.1 7777 greeting 0 1000
OK
redis 127.0.0.1:6379> EXISTS greeting                           
# 迁移成功后 key 被删除(integer) 0

使用另一个客户端,查看 7777 端口上的实例:
$ ./redis-cli -p 7777
redis 127.0.0.1:7777> GET greeting
"Hello from 6379 instance"

热门推荐