MOVE:将给定的键移动到另一个数据库

用户可以使用 MOVE 命令,将一个键从当前数据库移动至目标数据库:

  1. MOVE key db

MOVE 命令成功将给定键从当前数据库移动至目标数据库时,命令返回 1 ;如果给定键并不存在于当前数据库,又或者目标数据库里面存在与给定键同名的键,那么 MOVE 命令将不做动作,只返回 0 表示移动失败。

作为例子,以下代码展示了怎样将 0 号数据库中的 msg 键移动到 3 号数据库:

  1. redis> GET msg -- 位于 0 号数据库中的 msg
  2. "This is a message from db 0."
  3.  
  4. redis> MOVE msg 3 -- msg 键移动到 3 号数据库
  5. (integer) 1
  6.  
  7. redis> SELECT 3 -- 切换至 3 号数据库
  8. OK
  9.  
  10. redis[3]> GET msg -- 获取被移动的 msg
  11. "This is a message from db 0."

不覆盖同名键

当目标数据库存在与给定键同名的键时,MOVE 命令将放弃执行移动操作。

举个例子,如果我们在 0 号数据库和 5 号数据库里面分别设置两个 lucky_number 键:

  1. redis> SET lucky_number 123456 -- 0 号数据库设置 lucky_number
  2. OK
  3.  
  4. redis> SELECT 5 -- 切换至 5 号数据库
  5. OK
  6.  
  7. redis[5]> SET lucky_number 777 -- 5 号数据库设置 lucky_number
  8. OK

然后尝试将 5 号数据库的 lucky_number 键移动到 0 号数据库,那么这次移动操作将不会成功:

  1. redis[5]> MOVE lucky_number 0
  2. (integer) 0

其他信息

属性
复杂度O(1)
版本要求MOVE 命令从 Redis 1.0.0 版本开始可用。