*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
*常见错误
- 目标键已存在:未指定 REPLACE 时返回 0。
*最佳实践
- 键备份:复制重要数据到临时键,进行测试或修改后再恢复。
*FAQ
Q: COPY 和 RENAME 有什么区别? A: COPY 保留源 key;RENAME 删除源 key。COPY 是复制操作,RENAME 是移动操作。