在redis中复制键

redis中有MOVE指令用于同实例转移(剪切)键,有MIGRATE指令用于跨实例转移(复制或剪切)键,偏偏没有同实例复制键,所幸有EVAL指令用于执行内嵌脚本。很简单。

eval "local s=redis.call('dump', KEYS[1]) return s and redis.call('restore', ARGV[1], 0, s, 'REPLACE')" 1 keyname keyname_copy

如果是在Python中使用,可以封装成一个函数。

def copy(redis, key, key_copy):
    return None != redis.eval(
        "local s = redis.call('dump', KEYS[1]) return s and redis.call('restore', ARGV[1], 0, s, 'REPLACE')", 1, key, key_copy)

发表评论

电子邮件地址不会被公开。 必填项已用*标注