*Redis COPY 命令

复制 key 到新的键名。Redis 6.0+ 引入。


*语法

COPY source destination [DB destination-db] [REPLACE]

*参数说明

参数 类型 必填 说明
source String 源键名
destination String 目标键名
DB Integer 目标数据库索引
REPLACE 标志 覆盖已存在的目标键

*返回值

条件 返回值
复制成功 1
目标键已存在且无 REPLACE 0
source 不存在 0

*时间复杂度

O(N),N 为 key 的值大小。


*示例

> SET mykey "value"
OK
> COPY mykey newkey
(integer) 1
> GET newkey
"value"

# 复制到另一个数据库
> COPY mykey newkey DB 1
(integer) 1

# 覆盖已有键
> COPY mykey newkey REPLACE
(integer) 1

*常见错误

  1. 目标键已存在:未指定 REPLACE 时返回 0。

*最佳实践

  1. 键备份:复制重要数据到临时键,进行测试或修改后再恢复。

*FAQ

Q: COPY 和 RENAME 有什么区别? A: COPY 保留源 key;RENAME 删除源 key。COPY 是复制操作,RENAME 是移动操作。