【发布时间】:2015-03-13 02:41:05
【问题描述】:
来自RENAME command documentation(强调我的):
将密钥重命名为新密钥。当源名称和目标名称相同或 key 不存在时,它会返回错误。如果 newkey 已经存在,它会被覆盖,当这种情况发生 RENAME 会执行一个隐式 DEL 操作,所以如果删除的 key 包含一个非常大的值,即使 RENAME 本身通常是一个恒定时间的操作,它也可能会导致高延迟.
为什么Redis复制数据然后DEL呢?在我看来,RENAME 可能有点像移动文件:数据保留在原处,但指向它的指针会更新,使其成为一个非常快速的操作。为什么 Redis 不能这样工作?
【问题讨论】:
标签: redis