将redis密钥复制(备份)到另一个密钥

时间:2017-09-15 14:04:23

标签: redis copy

我正在寻找一种有效的方法将一个redis密钥(类型zrange)的内容复制到另一个redis密钥(为了备份以前的分数);

例如,密钥my_score: ` ' a':100, ' b':200, ' c':300

我正在寻找的操作类型与此类似 prev_score = my_score

在redis数据之上的某个时间间隔之后,将经历一些更改(通过其他一些代码)并需要重新评估更改。这次新值将是

'a': 150, 'b': 250, 'c': 300

现在我需要比较自上次检查以来的更改,以便我可以比较每个索引中的更改类型。

请不要流动:

  1. 此操作位于同一数据库中(不是从一个redis实例到另一个redis实例)
  2. 我有特殊的理由使用zrange而不是其他无法更改的redis数据类型
  3. 我可以通过对每个索引使用zadd来实现此目的,但我正在寻找一个redis命令或更有效的命令。

2 个答案:

答案 0 :(得分:2)

简短回答 - ZUNIONSTORE prev_score 1 my_score

详情请见here

答案 1 :(得分:1)

您可以使用DUMPRESTORE

str = DUMP myscore
RESTORE another_key 0 str 

如果您的密钥有过期时间,您可以先使用PTTL key获取以ms为单位的过期时间,然后RESTORE another_key expire_time str